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

There's a few things going on here:

  1. Groovy's XmlParser and XmlSlurper (I recommend the latter) take an XML document wrapped in a root element (well-formed XML always exists in a root element). Groovy doesn't require you to specify the root element, so

    xml.root.item1

can become

xml.item1

If you have many item1s, you need to access them as an array.

xml.item1[0]
  1. Your XML is not well-formed. You're missing two end tags.

  2. To get the inner text of a node, use text() instead of text (it's a method).

Here are some excellent resources on both XmlParser and XmlSlurper.

于 2012-07-31T13:03:05.423 に答える