我正在尝试确定肥皂包膜主体是否包含特定节点。
我正在使用的信封的示例:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<Response>
<Result>Failure</Result>
<Error id="40020" value="">An Unkown Error Occured</Error>
<Response>
</soapenv:Body>
</soapenv:Envelope>
我想检查是否包含节点“ Response”,因此可以对它执行条件操作。我是XPath的新手,所以不确定完整的表达式是什么。
我目前拥有的XPath表达式是
[name(//soapenv:Body/*[1]) = 'Response']
我知道name(// soapenv:Body / * [1])将返回“ Response”的值,我只是不知道如何将结果与另一个值进行比较并返回true / false。
也许像这样作为替代表达?
//soapenv:Body/*[contains(Name, "Response")]
最佳答案
试试这些:
//soapenv:Body/*[name()='Response']
或者,如果Response可能比Body的子元素更深(应该不是这种情况)
//soapenv:Body/descendant::*[name()='Response']
关于xpath - 使用XPath检查Soap Envelope是否包含子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16156037/