【发布时间】:2014-08-11 07:30:05
【问题描述】:
我希望得到以下 xml 的元素名称。 我的请求中的问题是我想获取 Payload 元素。为此我使用了这个表达式
name(//env:Payload)
所以我得到了这个结果 env:Payload
<env:requeset xmlns:env="http://eai.ssss.xxx/Envelope" xmlns:ggg="http://fai.dgn.sss/ggg">
<env:clientbody>
<env:Payload>
<ggg:Service>
<ggg:Request>
<a>name</a>
<b>age</b>
<c>address</c>
</ggg:Request>
</ggg:Service>
</env:Payload>
</env:clientbody>
</env:requeset>
但有时我的客户发送带有不同元素的请求,有时也没有命名空间。那么我如何也得到以下请求
<requeset xmlns:="http://eai.ssss.xxx/Envelope" xmlns:ggg="http://fai.dgn.sss/ggg">
<clientbody>
<Payload>
<ggg:Service>
<ggg:Request>
<a>name</a>
<b>age</b>
<c>address</c>
</ggg:Request>
</ggg:Service>
</Payload>
</clientbody>
</requeset>
对于上述请求,我使用了相同的表达式,所以它给出了错误,所以我将如何在 2 种情况下或任何情况下获取 Payload 元素。 我试过了,但它不起作用
name(//( local-name()='Payload'))
它给ERROR - Failed to evaluate XPath expression: A location step was expected following the '/' or '//' token.
所以请指导获取没有命名空间和不同命名空间的元素,我也尝试过包含表达式,但我无法得到。
【问题讨论】: