XML Path Language
HTML ではなく、一般の XML に関しては、XMLHttpRequest を使うと DOM木を作ることができ、どちらに対しても XPath が使える。Internet Explorer の場合は、XMLDomNode.selectNodes() にて XPath が使える。Internet Explorer 以外のブラウザでは、DOM Level 3 XPath の仕様通り、XPathEvaluator.evaluate() にて、XPath が扱える。
現在では、ブラウザ標準で XPath が使えるが、2007年くらいまでは、JavaScript で実装した XPath が作られていて、 JavaScript-XPathやGoogle AJAXSLTなどが XPath を実装している。
省略構文は簡潔な構文であり、よく使われる多くの既定値を使い省略してロケーションステップを記述することができる。
省略構文による簡単なロケーションパスの記述例を示す。
/A/B/C
この例では、先頭が/となっている絶対パスであり、0個以上のC要素を選択する。 選択されたC要素はB要素の子要素(child element)であり、そのB要素はA要素の子要素であり、A要素はそのXML文書のルート要素である。
XPathの構文は、URI(Uniform Resource Identifier)の構文やファイルパスの構文に似せて、設計されている。
省略構文では、先の例より複雑な式を記述することもできる。ただし完全な構文と比べると記述能力は制限される。
既定のchild軸以外にもいくつかの軸(attribute軸、descendant-or-self軸、self軸、parent軸)を指定することができる。
簡明なノード名による指定以外のノードテストを指定することができる。
どのロケーションステップにも角括弧[と]を後ろにつけて述語を指定することができる。
少し複雑なロケーションパスの例を示す。
A//B/*[1]
この例は、先頭が/となっていない相対パスであり、任意の名前の(*)最初の要素([1])を選択する。 選択された「最初の要素」はB要素の子要素(/)であり、そのB要素はA要素の直接的または間接的な子要素(子孫要素、//)であり、そのA要素は現在のコンテクストノードの子要素である。
省略構文の一覧と正式な定義については後の#完全な構文と省略構文の対応関係の節で示す。
コンテクストノードが要素の場合、その名前空間ノード
引数として渡されたノード集合の各ノードの文字列値を、仕様で定められた変換規則にしたがって数値に変換し、合計した値を返す。
全てのノードを指定する。