在不知道确切名称空间的情况下解析通用 xml 文件

发布于 2025-01-05 22:01:56 字数 226 浏览 0 评论 0原文

我在解析作为 Java 应用程序中 SOAP 请求的结果收到的 xml 响应时遇到问题。

请求得到服务,响应是一个 xml 文件,其名称空间可能会不时更改,但名称空间后面的标记名不会更改。

例如,如果标签“status”在任何情况下都不会改变,只有名称空间前缀“xxx”会改变。

所以查询:是否有办法在不知道名称空间('xxx')详细信息的情况下获取该标签值?

提前致谢..

I have an issue of parsing a xml response which i receive as the result of SOAP request in a Java application.

The request is serviced and the response is a xml file whose namespace are prone to change from time to time but however tagname which follows the namespace does not change.

For example, is the tag then 'status' does not change at any cause, only the namespace prefix 'xxx' changes.

So the query : is there anyway of getting that tag value without knowing the namespace('xxx') details??

thanks in advance..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

调妓 2025-01-12 22:01:56

如果名称空间 URI 没有更改,但前缀更改了,您只需将 URI 添加到 xpath 中(例如 /S:Envelope/S:Body/ns1:someContentElement ):

/*[namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/' and local-name()='Envelope']/*[namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/' and local-name()='Body']/*[namespace-uri()='http://service.example.com/' and local-name()='someContentElement']

有点啰嗦,但可以绕过更改的名称空间前缀

If the namespace URI does not change, but the prefix does, you can just add the URI to your xpaths (for something like /S:Envelope/S:Body/ns1:someContentElement ):

/*[namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/' and local-name()='Envelope']/*[namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/' and local-name()='Body']/*[namespace-uri()='http://service.example.com/' and local-name()='someContentElement']

Little wordy but will get around a changing namespace prefix

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文