私はこのようなxml構造を持っています
<JJJ version="2.0" >
<Data >
<Object class="classX">
<k name="constname1">variable1</p>
<k name="constname2">variable2</p>
<k name="constname3">variable3</p>
</Object>
<Object class="classY">
<k name="constname1">variable11</p>
<k name="constname2">variable12</p>
<k name="constname3">variable13</p>
</Object>
ClassX ノードを選択する必要があり、constname1 を含む属性の値 (つまり variable1
def parser = new XmlSlurper()
def mymo=records.'Data'.'Object';
def mytest = mymo.findAll{it.@class.text()=="ClassX"};
mytest.each{
it.'p'.each{
println it.@name.text() +'-'+ it.text() }
}
これは機能しています。しかし、ループ内のテキストを比較する代わりに、このようなことをする必要があります
def testme= mytest.'k'.find{ it.@name.text()=="constname1"}
これは私が正しくない
ただし、以下は正しいです
println mymo.'k'.find{it.@name.text()=="constname1"}
しかし、classX のノードに選択を制限したい