2

我正在尝试确定肥皂信封主体是否包含特定节点。

我正在使用的信封示例:

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

我想检查是否包含节点“响应”,因此我可以对其执行条件操作。我对 XPath 比较陌生,所以我不确定完整的表达式应该是什么。

我目前拥有的 XPath 表达式是

[name(//soapenv:Body/*[1]) = 'Response']

我知道 name(//soapenv:Body/*[1]) 将返回“响应”的值,我只是不知道如何将该结果与另一个值进行比较并返回真/假。

也许像这样作为另一种表达方式?

//soapenv:Body/*[contains(Name, "Response")]
4

1 回答 1

1

试试这些:

//soapenv:Body/*[name()='Response']

或者,如果 Response 可以比 Body 的子级更深(不应该是这样)

//soapenv:Body/descendant::*[name()='Response']
于 2013-04-22T20:25:29.657 回答