我正在探索自动化软件安装过程的方式使用蚂蚁工具。
除了我的大多数我能够完成的大多数编辑wildfly standalone.xml文件以向其添加数据源。
我觉得这里的问题是ant xmltask无法解决多个名称空间。
我已将复制路径指定为<insert path="/:server/:profile/:subsystem[3]/:datasources" unless="modelexists">
,':'指定有一个名称空间。
虽然当名称空间在独立的服务器元素上时可以正常工作,但是由于我试图编辑<profile><subsystem>
而且由于子系统再次具有另一个名称空间,因此无法将数据插入到它。
我希望有人能在这里帮助我。
谢谢。
如其他答案所述(例如,如何使用ANT替换XML字段的值?),您的问题是ANT无法正确处理XPath中的名称空间。利用":"的语法对我来说并不始终如一。您需要改用//*[local-name()='server']
语法。
请尝试:
<xmltask source="standalone.xml" dest="standalone.xml" report="true">
<insert path="*[local-name()='server']/*[local-name()='profile']/*[local-name()='subsystem'][3]/*[local-name()='datasources'] unless="modelexists">
</xmltask>