xmltask(ANT)::替换为不适用于xml元素空值的文本
我试图使用xmltask(ANT脚本)替换xml字段值。但是,如果xml元素为空,它不会替换该值 例如:xmltask(ANT)::替换为不适用于xml元素空值的文本,xml,ant,xmltask,Xml,Ant,Xmltask,我试图使用xmltask(ANT脚本)替换xml字段值。但是,如果xml元素为空,它不会替换该值 例如: <Mydoc> <doc> <docname>abc.txt</docname> <doclocation>xyz</doclocation> </doc> <doc> <docname>mmm.txt<
<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"
abc.txt
xyz
mmm.txt
在上面的例子中,如果“docname”元素是“mmm.txt”,我想更新“doclocation”元素
用来实现它的脚本
<xmltask dest="sample.xml">
<fileset file="sample.xml"/>
<replace
path="/Mydoc/doc[docname="mmm.txt"]/doclocation/text()"
withText="newURL"/>
</xmltask>
如果“doclocation”元素具有null/no值,则上述代码不起作用
这里需要做些什么来处理空值并用新值替换它?您可以使用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>
${newURL}]>
如果文本不存在,是否有办法替换文本?此代码应适用于或。这就是您要问的吗?是的,它应该能够在元素中插入文本,或者不使用Cdata标记替换整个元素,是吗?我的解决方案替换了整个元素,我相信您已经尝试过了。你能解释一下,在什么情况下,替换整个元素而不是“仅仅”替换内容是一个问题吗?