Я использую Блокнот ++ и пытаюсь заменить все числовые строки в определенном теге (xxxxof мой XML-документ с новой строкой, которая была изменена определенной переменной. Вот пример:
<start>501234</start>
вокруг (501234 * 0.9) = 451111
<start>451111</start>
Существует ли способ автоматически найти, что все числовые значения в запуске отмечают и действительно заменяют его тем же самым значением, умноженным на 0,9? Я не должен использовать Блокнот ++, если существует другой инструмент, который может сделать это.
Спасибо!
используйте xslt для изменения input.xml:
<bla>
<start>501234</start>
<end>12345</end>
</bla>
и Вы хотите умножить число между start
теги с 0.9
, затем создайте "файл преобразования" (transform.xsl):
<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml" indent="yes"/>
<!-- copy everything else -->
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<!-- transform what we are interested in -->
<xsl:template match="start">
<foo><xsl:value-of select="number(.) * 0.9" /></foo>
</xsl:template>
</xsl:stylesheet>
и примените его как это:
% xsltproc transform.xsl input.xml
Если у Вас есть незначительное знание программирования, можно записать собственное очень легко. Можно использовать объект XPathNavigator проанализировать XML с комбинацией C# или VB для задачи как этот, Вы не должны проводить больше получаса.
Начните Свой собственный проект с некоторых бесплатных версий Визуального Sudio, и пришел к Stackoverflow.com с Вашими проблемами.
Очень простое решение этого состоит в том, чтобы записать сценарий (возможно, жемчуг), чтобы сделать находку и замену на Вашей переменной. эта строка соответствует всему между двумя переменными тега]> (.?). В жемчуге Вы можете просто несколько результат этого regex с.9 и переписывать ответ. Я имею дело с обновлением больших XML-файлов часто, и жемчуг является безусловно самым легким решением любой из моих проблем