0

我已经检查了该站点,尽管许多人都在寻找类似的解决方案,但尚未发布针对我的特定问题的解决方案,也没有提出类似的问题。

我有一个看起来像这样的 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

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

4

1 回答 1

3

这里发生了一些事情:

  1. Groovy 的 XmlParser 和 XmlSlurper(我推荐后者)采用包装在根元素中的 XML 文档(格式良好的 XML 始终存在于根元素中)。Groovy 不需要您指定根元素,因此

    xml.root.item1

可以变成

xml.item1

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

xml.item1[0]
  1. 您的 XML 格式不正确。您缺少两个结束标签。

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

这里有一些关于XmlParserXmlSlurper的优秀资源。

于 2012-07-31T13:03:05.423 回答