如何解决无法使用XmlTask选择具有属性的XML根节点
I want to insert an element in the XML.
This is an XML file - named web.xml
<web-app>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
This is the ANT task I am using to insert an element in the web-app node.
<taskdef name="xmltask" classname="com.oopsconsultancy.xmltask.ant.xmltask" classpath="C:/xmltask.jar"/>
<xmltask source="C:\web.xml" dest="C:\web.xml>
<insert path="/web-app">
<![CDATA[
<hello_world id="3">hello world</hello_world>
]]>
</insert>
</xmltask>
Ant任务运行将 hello_world 节点插入网络应用。
The insert (actually root node selection) fails when the root has an attribute.
So the xmltask insert doesn't work when the XML is -
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee">
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
I tried to use insert like this,but no luck -
<insert path="/web-app/[@xmlns='http://xmlns.jcp.org/xml/ns/javaee']">
选择根节点的方法是什么?为什么这不起作用,请提供解释。
解决方法
当Xml使用声明的名称空间(xmlns=
不仅仅是一个属性)时,这很可能是XmlTask / xpath的问题。
查看其他答案:https://stackoverflow.com/a/35778167/366749
我建议您尝试:
<taskdef name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask" classpath="C:/xmltask.jar"/>
<xmltask source="C:\web.xml" dest="C:\web.xml>
<insert path="*[local-name()='web-app']">
<![CDATA[
<hello_world id="3">hello world</hello_world>
]]>
</insert>
</xmltask>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。