我正在尝试使用xmltask(ANT脚本)替换xml字段值。但如果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>
如果&#39; doclocation&#39;上面的代码不起作用? element有null / no值。
这里需要做些什么来处理空值并用新值替换它?
答案 0 :(得分:1)
您可以使用CDATA部分完全替换所有情况下的doclocation元素,例如:
<property name="newURL" value="https://www.stackoverflow.com"/>
<xmltask source="sample.xml" dest="result.xml">
<replace path="/Mydoc/doc[docname='mmm.txt']/doclocation">
<![CDATA[ <doclocation>${newURL}</doclocation> ]]>
</replace>
</xmltask>