XmlSlurper
GPathを使用して XML ツリーを分析しようとしていますが、findAll
メソッドの動作に混乱しています。
たとえば、次の XML ツリーがあるとします。
<html>
<body>
<ul>
<li class="odd"><span>Element 1</span></li>
<li class="even"><span>Element 2</span></li>
<li class="odd"><span>Element 3</span></li>
<li class="even"><span>Element 4</span></li>
<li class="odd"><span>Element 5</span></li>
</ul>
</body>
</html>
がのメソッドのxml
1 つによって初期化されていると仮定すると、次のコードは期待どおりに実行されます。XmlSlurper
parse
// Prints:
// odd
// odd
// odd
xml.body.ul.li.findAll {it.@class == 'odd'}.@class.each {println it.text()}
一方で:
// Doesn't print anything.
xml.body.ul.li.findAll {it.@class == 'odd'}.span.each {println it.text()}
@
特別なプロパティ (および などの他のプロパティ) を使用できるのに、 **
「通常の」プロパティを使用できない理由を理解するのに苦労しています。
私は API コードを調べましたが、さらに混乱しているのは、getProperty
( にある) 実装GPathResult
が私がやろうとしていることをサポートしているように見えることです。
私は何が欠けていますか?