gpt4 book ai didi

xml - 如何从 SOAP 消息中获取命名空间的名称?

转载 作者:行者123 更新时间:2023-12-04 16:51:43 24 4
gpt4 key购买 nike

我有一个 SOAP 消息(见下文)。

使用 Xpath,如何从此消息中提取命名空间的名称?换句话说,是否有一个 Xpath 例程会返回文本“validateNewOrder”?

任何建议或帮助将是无价的。我一直在到处寻找,但没有找到解决方案。它让我发疯......

谢谢!

<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<ns1:validateNewOrder xmlns:ns1="http://sire.rabobank.nl/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<sireheader xmlns="http://sire.rabobank.nl/">
<sender>
<compid>TEST</compid>
</sender>
</sireheader>
<order xmlns="http://sire.rabobank.nl/">
<account>123456789</account>
</order>
</ns1:validateNewOrder>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

最佳答案

local-name(/*[local-name() = 'Envelope']/*[local-name() = 'Body']/*[1])

返回 Body 下第一个元素的本地名称以命名空间不可知的方式。

用(c#)测试过
XDocument doc = XDocument.Load(@"XMLFile1.xml");
var xpath = "local-name(/*[local-name() = 'Envelope']/*[local-name() = 'Body']/*[1])";
var res = doc.Root.XPathEvaluate(xpath);

关于xml - 如何从 SOAP 消息中获取命名空间的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2438527/

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