0
gpathにいくつかの名前空間の問題があります。接頭辞付きのXMLタグで使用するとGroovy gpathが動作しない
String record = '''
<u:record>
<u:controlfield tag="001">017003167</u:controlfield>
<u:datafield ind2="" ind1="" tag="Tag_1234">
<u:subfield code="a">Peter</u:subfield>
<u:subfield code="b">10</u:subfield>
</u:datafield>
<u:datafield ind2="" ind1="" tag="Tag_1234">
<u:subfield code="a">Simon</u:subfield>
<u:subfield code="b">20</u:subfield>
</u:datafield>
<u:datafield ind2="" ind1="" tag="Tag_20">
<u:subfield code="a">Simon</u:subfield>
<u:subfield code="b">20</u:subfield>
</u:datafield>
</u:record>
'''
GPathResult studentRecord = new XmlSlurper(false, false).parseText(record)
GPathResult filteredRecord = studentRecord.datafield.findAll { it.'@tag' == 'Tag_1234' }
println "filteredRecord: ${filteredRecord}\n"
println "filteredRecord size is ${filteredRecord.size()}\n"
出力は0です。理由はわかりません。 xml接頭辞 "u:"を削除すると、gpathは正常に動作します。誰でも私が間違っているところを教えてください。
'recordWithPrefixXml' とは何ですか? –
それはタイプミスです - 私はxmlを修正しました。 – user292049