我有一个解析xml响应的问题,我在Java应用程序中收到了SOAP请求的结果。
请求得到处理,响应是一个xml文件,其命名空间很容易随时更改,但是命名空间后面的标记名不会改变。
例如,标签是' status'不会因任何原因而改变,只有命名空间前缀' xxx'变化。
所以查询:无论如何在不知道命名空间(' xxx')详细信息的情况下获取该标记值?
提前感谢..
答案 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']
有点罗嗦,但会绕过更改名称空间前缀