给定以下 XML:
<list version="1.0">
<meta>...</meta>
<resources start="0" count="167">
<resource classname="Quote">
<field name="name">USD/KRW</field>
<field name="price">1024.400024</field>
<field name="symbol">KRW=X</field>
</resource>
...
</resources>
</list>
为了找到正确的<resource>
并得到它,price
我执行以下操作:
def slurper = new XmlSlurper()
def result = slurper.parse(XML_URL)
def node = result.depthFirst().find { it.text() == "KRW=X" }
println node.parent().find { it['@name'] == "price" }.text()
但是结果是parent()
没有实现find(Closure)
与文档不完全匹配:http: //groovy.codehaus.org/gapi/groovy/util/slurpersupport/GPathResult.html
node.parent().size()
当我期望它按照上面的 XML 返回 3 时,更奇怪的返回 1
我的问题:
我的代码是否正确,为什么不工作?
这是实现预期结果的最短途径吗?
为什么
node.parent().size()
返回 1 ?也一样node.parent().parent().size()
,node.parent().parent().parent().size()
以此类推……