[英]Using xpath to extract an element out of nested xml document - SOAPUI
您好,下面是我拥有的xml:
<s:Fault>
<faultcode xmlns:a="http://schemas.microsoft.com/net/2005/12/windowscommunicationfoundat ion/dispatcher">
a:InternalServiceFault
</faultcode>
<faultstring xml:lang="en-NZ">**<![CDATA[<ns0:Root xmlns:ns0="http://NZPost.EAI.UnifiedTracking.Schemas.FaultMessage">
<FaultCode>NZPUT004</FaultCode>
<Reason>"**Object reference not set to an instance of an object.**" </Reason>
</ns0:Root>]]**>
</faultstring>
.
.
.
</s:fault>
我想在SoapUI中使用断言来确认响应包含文本“对象引用未设置为对象的实例”。 但是我不知道应该在声明段中使用xpath来到达Reason标签。
在上面的示例中,我能够导航到,但是在我编写faultString // FaultCode或faultString // Message时,它抛出一个错误,指出当前响应中不存在匹配项。
请帮忙!
您不能使用该路径导航Cdata标记的xml内容,但可以将其作为字符串获取..因此,您可以通过substring-after和substring-before方法或正则表达式对其进行解析。
substring-before(substring-after(.//*[local-name()='faultstring'] , 'Reason>') , '</Reason')
结果将是
"**Object reference not set to an instance of an object.**"
要么
contains(.//*[local-name()='faultstring'] , '**Object reference not set to an instance of an object.**')
这将导致
true
我希望这可以帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.