gpt4 book ai didi

xml - 使用 XPath 获取具有默认命名空间(无命名空间前缀)的元素

转载 作者:数据小太阳 更新时间:2023-10-29 01:40:09 25 4
gpt4 key购买 nike

在此 SOAP XML 文件中,如何使用 XPath 查询获取 7

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<HelloWorldResponse xmlns="http://tempuri.org/">
<HelloWorldResult>7</HelloWorldResult>
</HelloWorldResponse>
</soap:Body>
</soap:Envelope>

此 XPath 查询无效 //*[name () ='soap:Body']

最佳答案

如果您设置了命名空间前缀,您可以使用它,例如:

//soap:Body

但由于您尝试获取的节点使用默认 namespace ,没有前缀,使用普通 XPath,您只能通过 local-name()namespace-uri() 属性。示例:

//*[local-name()="HelloWorldResult"]/text()

或者:

//*[local-name()="HelloWorldResult" and namespace-uri()='http://tempuri.org/']/text()

或者:

//*[local-name()="HelloWorldResponse" and namespace-uri()='http://tempuri.org/']/*[local-name()="HelloWorldResult"]/text()

对于您的 xml,它们都会给出相同的结果,即文本 7

关于xml - 使用 XPath 获取具有默认命名空间(无命名空间前缀)的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16717211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com