XML Path Language
XPathのデータモデルでは、XML文書はルートノードを頂点とするノードの木構造であり、以下の7種類のノードから構成される (参考: XML) 。
ルートノード
要素ノード
テキストノード
属性ノード
名前空間ノード
処理命令ノード
コメントノード
ロケーションステップのノードテストは、式もしくは特定のノード名によって記述される。 例えば、名前空間接頭辞gsが定義されているXML文書で、//gs:enquiryとノードテストが記述された場合、gs名前空間下のenquiryをノード名とする全てのノードの集合が、このノードテストの指定の対象となる。
ノードテストの書式を示す。
コンテクストノードの兄弟ノードのうち前方のノード
Internet Explorer や Fiefox などのウェブブラウザでは、xml-stylesheet処理命令が中に書かれたXML文書を表示する場合、そのXML文書を指定されたXSLプログラムで処理して得られるXML文書を画面に表示する。
その直前のノードテストで指定されたノード集合がそのロケーションステップのコンテクストであり、述語が指定されることでコンテクストが変更されることは無い。
複雑な例を示す。
//a[@href='help.php'][name(..)='div'][../@class='header']/@target
この例は、a要素のtarget属性の値を指定する。 ただし、このXPath式の最初のロケーションステップには3つの述語が記述されており、a要素のうち
a要素のhref属性の値が'help.php'であり、
また、a要素の親要素の要素名がdivであり、
また、親要素(div)のclass属性の値が'header'である、
a要素のみが、最初のロケーションステップの指定対象となる。 最終的には、最初のロケーションステップで絞り込まれて指定対象となったa要素のtarget属性が指定されることになる。