这是我从服务器获得的XML结果。
<ns1:tag1 xmlns:ns1="http://samples.org">
<ns2:tag2 xmlns:ns2="http://samples.com">
<ns3:tag3 xmlns:ns3="http://samples.edu">chanaka</ns3:tag3>
</ns2:tag2>
</ns1:tag1>
在这里,我想从xpath表达式中获取值tag3。我尝试了以下xpath表达式,但没有用。
//ns1:tag1/ns2:tag2/ns3:tag3
但是,当我在根级别声明所有名称空间时,此表达式给出了结果。
最佳答案
可能有一些更清洁的方法(我希望其他人知道),但是以下方法也可以找到工作:
//ns1:tag1/node()[local-name() = 'tag2' and namespace-uri() = 'http://samples.com']/node()[local-name() = 'tag3' and namespace-uri() = 'http://samples.edu']