gpt4 book ai didi

ant - xmltask 删除不起作用

转载 作者:行者123 更新时间:2023-12-02 04:42:00 25 4
gpt4 key购买 nike

我有这个 application.xml

<?xml version="1.0" encoding="UTF-8"?>
<application id="Application_1326308152661" version="1.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application_1_4.xsd">
<description>MIC Server Application.</description>
<module>
<web> ...
</web>
</module>
<module>
<ejb>mic-sqlbridge.jar</ejb>
</module>
<security-role> ...
</security-role>
</application>

在此 xml 中,必须删除包含标签 ejb 的“module”标签部分。为此,我尝试了

<xmltask source="application.xml" dest="application_X.xml"> 
<remove path="/application/module[ejb/text() = 'mic-sqlbridge.jar']"/>
</xmltask>

不幸的是,这并没有删除任何东西 - 这是日志部分:

[xmltask] Reading application.xml
[xmltask] Executing xmltask 1.16
[xmltask] Processing application.xml into application_X.xml
[xmltask] Using predefined xml catalog
[xmltask] Applying RemovalAction() to /application/module[ejb/text() = 'mic-sqlbridge.jar']
[xmltask] Applied RemovalAction() - 0 match(es)
[xmltask] RemovalAction() (/application/module[ejb/text() = 'mic-sqlbridge.jar']) failed to match
[xmltask] Normalizing resultant document

有什么想法吗?提前致谢!

弗兰克

最佳答案

阅读 this给我带来了解决方案:“用前面的 ':' 限定每个 XML 元素名称的范围足以告诉 XPath 机制你对元素的本地名称感兴趣。”

所以路径声明

path="/application/module[ejb/text() = 'mic-sqlbridge.jar']"

成为

path="/:application/:module[:ejb/text() = 'mic-sqlbridge.jar']"

什么是完美的。

关于ant - xmltask 删除不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20638059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com