2

我正在探索使用 Ant Tool 自动化软件安装过程的方法。

除了编辑wildflystandalone.xml文件以向其中添加数据源之外,我已经能够完成大部分工作。

我觉得这里的问题是 ant xmltask 无法解析多个命名空间。

我已将复制路径指定为<insert path="/:server/:profile/:subsystem[3]/:datasources" unless="modelexists">':' 指定存在命名空间。

尽管当命名空间位于独立的服务器元素上时它工作正常,但由于我正在尝试编辑<profile><subsystem> 并且因为子系统再次具有另一个命名空间,因此无法将数据源插入到其中。

我希望有人可以在这里帮助我。

谢谢。

4

1 回答 1

0

正如其他答案中提到的(例如,如何使用 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>  
于 2016-06-20T14:05:43.127 回答