繁体   English   中英

使用xpath从嵌套的xml文档中提取元素-SOAPUI

[英]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&gt;') , '&lt;/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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM