xmltask (ANT):: заменить на текст, не работающий для нулевого значения элемента xml
Я пытаюсь заменить значение поля XML с помощью xmltask (сценарий ANT) . Но это не заменяет значение, если элемент xml пуст.
например:
<Mydoc>
<doc>
<docname>abc.txt</docname>
<doclocation>xyz</doclocation>
</doc>
<doc>
<docname>mmm.txt</docname>
<doclocation></doclocation>
</doc>
</Mydoc>
in the above example i want to update the "doclocation" element if "docname" element is "mmm.txt"
Сценарий используется для достижения этого.
<xmltask dest="sample.xml">
<fileset file="sample.xml"/>
<replace
path="/Mydoc/doc[docname="mmm.txt"]/doclocation/text()"
withText="newURL"/>
</xmltask>
вышеуказанный фрагмент кода не работает, если элемент 'doclocation' имеет значение null/no.
что нужно сделать, чтобы обработать нулевые значения и заменить его новым значением?
1 ответ
Вы можете полностью заменить элемент doclocation для всех случаев, используя раздел CDATA, например:
<property name="newURL" value="https://www.stackru.com"/>
<xmltask source="sample.xml" dest="result.xml">
<replace path="/Mydoc/doc[docname='mmm.txt']/doclocation">
<![CDATA[ <doclocation>${newURL}</doclocation> ]]>
</replace>
</xmltask>