2012-01-05 116 views
0

我有以下XML块(标准的JBoss web.xml文件):找到一个兄弟节点的XML文件蚂蚁xmltask值

<web-app> 
    <servlet> 
    <init-param> 
     <param-name>checkInterval</param-name> 
     <param-value>-1</param-value> 
    </init-param> 
    <init-param> 
     <param-name>reloading</param-name> 
     <param-value>false</param-value> 
    </init-param> 
    . 
    . 
    . 
    </servlet> 
</web-app> 

我想选择的<init-param><param-value><param-name>=checkInterval及复印件它。有多个(不同)<init-params>所以我需要动态选择它。

我曾尝试以下:

<target name="default" description="description">  
     <xmltask source="web.xml" dest="web_edited.xml"> 
      <copy path='/web-app/servlet/init-param[param-name="checkInterval"]/param-value/text()' property='property1' />  
     </xmltask> 
     <echo>${property1}</echo> 

</target> 

预期的结果是-1,而是该属性未定义。 有什么想法?

+0

显然问题在于该文档包含多个XML名称空间。定义如下:'<?xml version =“1.0”encoding =“UTF-8”?> 应用程序显示名称 ....'so''变成'<插入路径=”/:web-app /:display-name“xml =”新应用程序名称“/>' – Michael 2012-01-09 12:43:11

+0

更多信息可以在这里找到:http://today.java .net/pub/a/today/2006/11/01/xml-manipulation-using-xmltask.html – Michael 2012-01-09 12:43:51

回答

2

您的XPath对我来说工作正常,所以我怀疑这是蚂蚁的问题(对不起,不太了解)。

但我有一个建议:尝试从最后敲掉'text()'位?它可能是以数字输入-1。

+0

你是对的,xpath没问题,问题出在蚂蚁的任务上,确实没有用手使用多个名称空间。 – Michael 2012-01-09 12:45:11