groovy 中的 XMLHolder 无法检索值

XMLHolder in groovy unable to Retrieve value

我有以下 xml:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <SOAP-ENV:Body>
      <Login_v1Response>
         <result xsi:nil="true"/>
         <opSessionID>FjqkjEjipbhkdiin</opSessionID>
      </Login_v1Response>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

我在 groovy 中有以下代码,returns 我为空:

def groovyUtils=new com.eviware.soapui.support.GroovyUtils(context)
def holder = groovyUtils.getXmlHolder("Step1-Login#response")
log.info holder.getNodeValue("//SOAP-ENV:Envelope/SOAP-ENV:Body/Login_v1Response/opSessionID")

请帮忙。 谢谢

您在脚本中使用了命名空间,但没有定义这些命名空间是什么。对于仅读取值,使用通配符通常更容易,不用担心它们。

def groovyUtils=new com.eviware.soapui.support.GroovyUtils(context)
def holder = groovyUtils.getXmlHolder("Step1-Login#Response")
log.info holder.getNodeValue("//*:opSessionID")

或者更简单的东西,例如:

log.info context.expand('${Step1-Login#Response#//*:opSessionID}')