假设有以下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>的值。

最佳答案

如果数据字段名在文件中是唯一的:

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

如果不是,并且您希望获得具有所有匹配datafield值的数组:
println new XmlSlurper()
    .parseText(xml)
    .DataFieldText.findAll {it.DataFieldName == "Field #1"}*.DataFieldValue*.text()

08-18 11:03