如何使用soapui(groovy)从带有equals标记但属性不同的xml中获取值

如何使用soapui(groovy)从带有equals标记但属性不同的xml中获取值,groovy,xml-parsing,soapui,Groovy,Xml Parsing,Soapui,我正在groovy中制作一个自动脚本,从SOLR获取数据,然后在属性中设置该数据以备将来使用。 我使用脚本断言来实现这一点,因为可以减少诉讼中的步骤数量。 问题是:从SOLR接收的XML在所有数据中都有相同的名称,唯一的区别是属性“name”。 我想通过属性获取值 我试过使用xmlSlurper和XmlHolder,但我不能只得到一个值,只能得到一个数据数组(SOLR可以随机回答文档,所以我不能使用这个解决方案) SOLR的答案如下: 6. 0 N N 2301 1135XV942220 我

我正在groovy中制作一个自动脚本,从SOLR获取数据,然后在属性中设置该数据以备将来使用。 我使用脚本断言来实现这一点,因为可以减少诉讼中的步骤数量。 问题是:从SOLR接收的XML在所有数据中都有相同的名称,唯一的区别是属性“name”。 我想通过属性获取值

我试过使用xmlSlurper和XmlHolder,但我不能只得到一个值,只能得到一个数据数组(SOLR可以随机回答文档,所以我不能使用这个解决方案)

SOLR的答案如下:


6.
0
N
N
2301
1135XV942220
我试过:

def resp = new XmlSlurper().parseText(context.response)
def results = resp.response.doc.find {it.name()=="BUS"}?.text()
这让我一无所获

def results = resp.response.doc.str.'@name'.text().equals('BUS')
给我值false(?)

例如,我想获取id并将其传输到测试套件级别的属性。 任何可能的解决方案?

使用XmlHolder

import com.eviware.soapui.support.XmlHolder
resp = new XmlHolder(context.response)
log.info resp.getNodeValue("//response/doc/str[@name='BUS']")

有了XmlHolder

import com.eviware.soapui.support.XmlHolder
resp = new XmlHolder(context.response)
log.info resp.getNodeValue("//response/doc/str[@name='BUS']")


找到了!!!!!!!!!!!找到了!!!!!!!!!!!