在groovy中读取xml值

时间:2012-07-31 12:36:09

标签: xml groovy

我已经检查了网站,虽然很多人都在寻找类似的解决方案,但我的具体问题的解决方案还没有发布,也没有提出类似的问题。

我的XML看起来像这样:

<root>
 <item1>TEXT A</item1>
 <item2>TEXT B</item2>
 <subs>
  <sub1>
   <thing property1='valueA' property2='valueB'>
    <foo>fooA</foo>
  </sub1>
  <sub2>
   <thing property1='valueC' property2='valueD'>
    <foo>fooA</foo>
  </sub2>
 </subs>
</root>

我想要“TEXT B”

我在想

def xml = new XmlParser().parseText(MY_XML_FILE)

但现在如何访问“TEXT B”??

xml.root.item2.text

不起作用。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

这里有一些事情发生了:

  1. Groovy的XmlParser和XmlSlurper(我建议使用后者)获取一个包含在根元素中的XML文档(格式良好的XML始终存在于根元素中)。 Groovy不要求您指定根元素,所以

    xml.root.item1

  2. 可以成为

    xml.item1
    

    如果您有多个item1,则需要将它们作为数组访问。

    xml.item1[0]
    
    1. 您的XML格式不正确。你错过了两个结束标签。

    2. 要获取节点的内部文本,请使用text()而不是text(这是方法)。

    3. 以下是XmlParserXmlSlurper上的一些优秀资源。