XmlSlurper parseText-节点名称替换为变量

时间:2020-06-26 12:49:06

标签: java groovy xml-parsing xmlslurper

解析XML响应后,我在数组列表 myTag中声明了所有节点的名称,然后调用API端点并获取XML响应文本并存储在xmlResult中。

然后循环所有节点值并获取节点文本。

我的代码

def myTag =['appNo','date','name']

def xmlResult = new XmlSlurper().parseText(responseObject.getResponseText())

myTag .eachWithIndex({ def item, def index ->
    def readableTag = myTag.get(index)  
    def result = xmlResult.application.$readableTag.text()
    println result
})

通过上面的循环,我得到了所有节点的空结果,但是当我使用下面的循环时,我得到了结果。

def result = xmlResult.application.appNo.text()
def result1 = xmlResult.application.date.text()
def result2 = xmlResult.application.name.text()

让我知道如何从变量中传递节点值以及如何用上面的语句中的变量值替换?

1 个答案:

答案 0 :(得分:1)

我得到了答案,在双引号中传递了变量。

myTag .eachWithIndex({ def item, def index ->
    def readableTag = myTag.get(index)  
    def result = xmlResult.application."${readableTag}".text()
    println result
})