xpathxpathを使い始める


備考

XPathは、XML文書の一部を扱うための言語です。

これはXSLTで使用され、XQueryのサブセットです。ライブラリはほとんどの他のプログラミング言語でも利用可能です。

XPathは、W3Cによって発行された仕様を持つ国際標準です。

バージョン

バージョン発売日
1.0 1999-12-16
2.0 2007年1月23日
3.0 2014-04-08
3.1 (W3C候補者勧告) 2015-12-17

一般的なHTML操作

入力HTML DOMが

<html>
    <body>
        <a>link</a>
        <div class='container' id='divone'>
            <p class='common' id='enclosedone'>Element One</p>
            <p class='common' id='enclosedtwo'>Element Two</p>
        </div>
    </body>
</html>
 

特定のIDを持つ要素をページ全体で検索する

//*[@id='divone'] # Returns <div class='container' id='divone'>
 

特定のパスの特定のIDを持つ要素を見つける

/html/body/div/p[@id='enclosedone'] # Returns <p class='common' id='enclosedone'>Element One</p>
 

特定のIDとクラスを持つ要素を選択する

//p[@id='enclosedone' and @class='common'] # Returns <p class='common' id='enclosedone'>Element One</p>
 

特定の要素のテキストを選択する

//*[@id='enclosedone']/text() # Returns Element One
 

サンプルXML(名前空間なし)

次に、XPathの例を記述するサンプルXMLを示します。

<r>
  <e a="1"/>
  <f a="2" b="1">Text 1</f>
  <f/>
  <g>
    <i c="2">Text 2</i>
    Text 3
    <j>Text 4</j>
  </g>
</r>
 

要素を選択する

サンプルXML(名前空間なし):

このXPath、

/r/e
 

この要素を選択します:

<e a="1"/>
 

テキストを選択

サンプルXML(名前空間なし):

このXPath、

/r/f/text()
 

この文字列値を持つテキストノードを選択します:

"Text 1"
 

そして、このXPath、

string(/r/f)
 

f の文字列値を返します。

"Text 1"
 

ブラウザコンソールでのXpathのテスト

xpathをテストする簡単な方法は、ブラウザの開発者ツールコンソールにあります。

フォーマットは

   $x('//insert xpath here')
 

$ - セレクタであることを示します。

x - xpathsを使用していることを指定します。

例:

$x("//button[text() ='Submit']")
 

このコマンドが入力されると、Submitと等しいテキストのボタンである要素のすべての出現を返します。