目次へ

1.3 コンテキストノード

まず、 XPath の基本的な考え方を説明します。たとえば、みなさんが A 駅の構内で D 駅までの行き方を尋ねられたとすると、どのように答えるでしょうか? おそらく次のようなかたちになると思います。
「(ここから) B 駅で乗り換えて C 駅に向かいそこで乗り換えると D 駅に行けます」
XPath においても通過点(上の例では駅)を指定することにより目的のデータに至る経路を表現し、この経路のことをロケーションパスといいます。たとえば、A 駅にいる人が D 駅を指定したときのロケーションパスは以下のようになるでしょうか。

B/C/D

ロケーションパスを理解する上で避けて通れないのが、コンテキストノードという用語です。ではコンテキストノードとはいったいどのノードを指すのでしょうか? 先にあげた電車の例で説明します。

電車は各駅停車で A 駅を出発し D 駅に向かいます。D 駅への経路は (A) → B → C → D となります。ここで、コンテキストノードとは電車が一区間進むときのスタート地点の駅に相当します。言い方を変えると、「どのノードがコンテキストノードか?」という問いは、「次の駅に向かう際どの駅を発車するのか?」という問いに相当します。先に挙げた "B/C/D" というロケーションパスの例で順を追って確認してみましょう。

カレントノードとコンテキストノード

最初のスタート地点は A 駅と決まっていますので、 B 駅に向かう際は A 駅を発車します。よって、コンテキストノードに相当するのは A 駅となります。次に、 C 駅に向かう際は B 駅を発車するので、コンテキストノードに相当するのは B 駅となります。最後に D 駅に向かう際は C 駅を発車するので、コンテキストノードに相当するのは C 駅となります。上の図でいうと start の文字で示されているノードがその時々のコンテキストノードとなります。

次ページではロケーションパスの構文をみていきます。

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp