使用Xpath从SOAP消息获取值
我试图从下面的SOAP消息中获取一个值,但可能我的XPath语法不好 我正在使用的XPath:使用Xpath从SOAP消息获取值,soap,xpath,Soap,Xpath,我试图从下面的SOAP消息中获取一个值,但可能我的XPath语法不好 我正在使用的XPath: /soap:Body/n0:RequestSystemGuidResponse/SystemGuid 错误: 处理xml时出错。名称空间 未定义前缀“n0”。 SOAP XML: <soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> <soap-env:Header>
/soap:Body/n0:RequestSystemGuidResponse/SystemGuid
错误:
处理xml时出错。名称空间
未定义前缀“n0”。
SOAP XML:
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<soap-env:Header></soap-env:Header>
<soap-env:Body>
<n0:RequestSystemGuidResponse
xmlns:n0="urn:sap-com:document:sap:soap:functions:mc-style">
<Errors></Errors>
<SystemGuid>E050831C9CA1D1F1A9FC005056B95649</SystemGuid>
</n0:RequestSystemGuidResponse>
</soap-env:Body>
</soap-env:Envelope>
E050831C9CA1D1A9FC005056B95649
您尚未向评估XPath表达式的环境声明名称空间前缀“n0”。
XPath中使用的命名空间声明需要在使用XPath的环境中声明
如果您需要关于如何实现这一点的帮助,请告诉我们您是如何使用XPath的。是否将“/soap:Body/n0:RequestSystemGuidResponse/SystemGuid”传递给特定类上的特定方法?在哪个图书馆?什么语言?您需要告诉它,“n0”前缀表示URI为“urn:sapcom:document:sap:soap:functions:mc-style”的名称空间
显然,您已经声明了名称空间前缀“soap”,否则您也会得到一个错误
此外,一旦修复了这个问题,您的XPath表达式将需要修改,因为现在只有在输入XML中的顶级元素为时,它才起作用。
而不是
/soap:Body/n0:RequestSystemGuidResponse/SystemGuid
你需要
/*/soap:Body/n0:RequestSystemGuidResponse/SystemGuid
(假设为URI为的命名空间声明了
soap
前缀)http://schemas.xmlsoap.org/soap/envelope/)。您有一些代码吗?