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

时间:2012-02-16 06:34:42

标签: xml soap xml-parsing

我有一个解析xml响应的问题,我在Java应用程序中收到了SOAP请求的结果。

请求得到处理,响应是一个xml文件,其命名空间很容易随时更改,但是命名空间后面的标记名不会改变。

例如,标签是' status'不会因任何原因而改变,只有命名空间前缀' xxx'变化。

所以查询:无论如何在不知道命名空间(' xxx')详细信息的情况下获取该标记值?

提前感谢..

1 个答案:

答案 0 :(得分:0)

如果命名空间URI没有改变,但前缀确实如此,你可以只将URI添加到你的xpaths(对于/ 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']

有点罗嗦,但会绕过更改名称空间前缀