我正在探索自动化软件安装过程的方法 使用Ant工具。
除了一个之外,其中大部分我都能完成 编辑wildfly standalone.xml文件以向其添加数据源。
我觉得这里的问题是ant xmltask无法解决 多个名称空间。
我已将复制路径指定为<insert path="/:server/:profile/:subsystem[3]/:datasources" unless="modelexists">
,
&#39;:&#39;指定存在命名空间。
虽然命名空间位于独立服务器元素上但由于我正在尝试编辑<profile><subsystem>
,但它工作正常
并且因为子系统再次具有另一个命名空间,所以无法将数据源插入其中。
我希望有人可以帮助我。
感谢。
答案 0 :(得分:0)
正如其他答案(例如How to replace value of an XML field using Ant?)所述,您的问题是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>