2015-05-11 80 views
0

我有以下XML:XMLHolder在Groovy無法檢索值

<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> 

我在常規下面的代碼返回我空:

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") 

請大家幫幫忙。 謝謝。

回答

2

您正在腳本中使用名稱空間,而沒有定義那些名稱空間。對於只讀值而言,通常更容易使用通配符,而不用擔心它們。

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}') 
+0

謝謝@SiKing –