以下の内容はhttps://takuya-1st.hatenablog.jp/entry/2014/08/09/213554より取得しました。


XPathで何番目を示すための方法(注意点

Xpathで何番目の要素を示す

一般的には次のように紹介されてることが多い。

/node/element[1]
/node/element[2]
/node/element[3]
/node/element[4]

これは、「兄弟ノード」siblingから選んでるところに注意が必要

兄弟として要素が並んでいるところから取り出す。

<root>
  <anchor> <em></em> </anchor>
  <anchor> <em></em> </anchor>
  <anchor> <em></em> </anchor>
  <anchor> <em></em> </anchor>
</root>      

XML中で要素が並んでいる時に使える。

また、複数の要素をタグ名関係なしに選びたいときは

/element/*[1] #=> 1つ
  • を使えば、並んでるところを同じ兄弟とみなすことが出来る。

siblingsとして並んでない場合は注意

強欲に "//*" を使っている場合は、n番目の指定は注意が必要。

//a
//a[1]

上のように、子孫ノード全部から選んだ場合は、子孫ノードで 並んでいるところの先頭を全部取り出す。

<root>
  <a></a><!-- ここ は1番目 -->
  <a></a>
  <a></a>
  <list>
    <a></a><!-- ここ は1番目 -->
    <a></a>
    <a></a>
  </list>
  <list>
    <a></a> <!-- ここ は1番目 -->
      <list>
        <a></a><!-- ここ は1番目 -->
        <a></a>
        <a></a>
      </list>
    <a></a>
    <a></a>
  </list>
</root>

なので4つノードが取得される。

//a[1] #=> 4つ

xpath の【a[1]】 は実行結果に対して、1番目のノードを選んでいるのではなく、検索条件であることをもう一度意識したら間違わないと思います。

参考資料

http://blog.bangboo.com/sub/xpath.html




以上の内容はhttps://takuya-1st.hatenablog.jp/entry/2014/08/09/213554より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14