xpath - 使用XPath检查Soap Envelope是否包含子节点

标签 xpath

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

我正在使用的信封的示例:

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

相关文章:

xml - 在 Hive 中解析 xml 时出错

python - 使用 XPath 提取标签之间的文本,包括标记

javascript - 使用 XPath 获取两组元素

html - 如何使用xpath在html中找到第二个td

xml - 在 XML 中使用 Xml 解析器和 Xpath 有什么区别

python - Scrapy 和 xpath 抓取我的网站并导出 URL - 我做错了什么?

ios - Xpath 和引号下的字符串

在运行时提取字段值的 Java 服务

xpath - 无法使用 XPath 表达式定位 LABEL 的元素

python - ExpectedCondition.invisibility_of_element_located 需要更多时间(selenium web driver-python)