2

これは、サーバーから取得した 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

しかし、ルート レベルですべての名前空間を宣言すると、この式で結果が得られました。

4

1 に答える 1

0

おそらく、それを行うためのよりクリーンな方法があります(他の誰かが知っていることを願っています)が、次の方法でもうまくいく可能性があります:

//ns1:tag1/node()[local-name() = 'tag2' and namespace-uri() = 'http://samples.com']/node()[local-name() = 'tag3' and namespace-uri() = 'http://samples.edu']
于 2013-08-11T18:02:57.140 に答える