假设有以下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()