Groovyイン・アクション訂正
Groovyイン・アクションで翻訳時のミスがありましたので、訂正しておきます。
P.355 表12.4の上から2行が
Node(XmlParser) | GPathResult(XmlSlurper) | 意味 |
---|---|---|
['elementName'] | [.elementName] | 指定した名前を持つすべての子要素 |
'elementName' | .elementName | (同上) |
となっていますが、正しくは
Node(XmlParser) | GPathResult(XmlSlurper) | 意味 |
---|---|---|
['elementName'] | ['elementName'] | 指定した名前を持つすべての子要素 |
.elementName | .elementName | (同上) |
となります。
XmlParserを使っても、XmlSlurperを使っても、子要素へのアクセス方法には差はありません。
そのほかの修正については、正誤表 http://groups.google.co.jp/group/gina-ja-support/web/%E6%AD%A3%E8%AA%A4%E8%A1%A8?hl=ja をご確認下さい。
参考までに、確認用のコードサンプルものせておきますね。
import groovy.util.slurpersupport.GPathResult import groovy.util.Node def s = """ <root> <child name='c1'/> <child name='c2'/> <child name='c3'/> </root>""" def parser = new XmlParser().parseText(s) // Node access: by [] parser['child'].each{ assert (it instanceof Node) && it.name()=='child'} // Node access: byproperty parser.'child'.each{ assert (it instanceof Node) && it.name()=='child'} def slurper = new XmlSlurper().parseText(s) // GPath access: by [] slurper['child'].each{ assert (it instanceof GPathResult) && it.name()=='child' } // GPath access: by property slurper.'child'.each{ assert (it instanceof GPathResult) && it.name()=='child' }