我正在尝试确定肥皂信封主体是否包含特定节点。
我正在使用的信封的一个例子:
<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")]
答案 0 :(得分:1)
试试这些:
//soapenv:Body/*[name()='Response']
或者如果Response可能比Body的孩子更深(不应该是这样)
//soapenv:Body/descendant::*[name()='Response']