12

次のXML構造があるとしましょう。

<Data>
    <DataFieldText>
        <DataFieldName>Field #1</DataFieldName>
        <DataFieldValue>1</DataFieldValue>
    </DataFieldText>
    <DataFieldText>
        <DataFieldName>Field #2</DataFieldName>
        <DataFieldValue>2</DataFieldValue>
    </DataFieldText>
    <DataFieldText>
        <DataFieldName>Field #3</DataFieldName>
        <DataFieldValue>3</DataFieldValue>
    </DataFieldText>
</Data>

Groovyを使用XmlSlurperして、次のことを行う必要があります。

要素に値をData含む要素を見つけることから始めます。見つかった場合は、同じレベルに属する対応する値を取得します。Field #1<DataFieldName><DataFieldValue>

4

2 に答える 2

18

DataFieldName がファイル内で一意の場合:

println new XmlSlurper()
    .parseText(xml)
    .DataFieldText.find {it.DataFieldName == "Field #1"}
    .DataFieldValue.text()

そうでなく、一致するすべての DataFieldValues を含む配列を取得する場合:

println new XmlSlurper()
    .parseText(xml)
    .DataFieldText.findAll {it.DataFieldName == "Field #1"}*.DataFieldValue*.text()
于 2011-11-30T09:58:45.750 に答える