XPath Examples
この節では、例を通じて、XPath の基本的な構文を学びましょう。
XML サンプル文書
以下の例では、この XML 文書を使用します。
"books.xml":
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="COOKING">
Everyday Italian
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
Harry Potter
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
XQuery Kick Start
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="WEB">
Learning XML
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
<bookstore>
<book category="COOKING">
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="WEB">
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
。
XML 文書を読み込む
すべての最新ブラウザは、XMLHttpRequest を使用して XML 文書を読み込む方法をサポートしています。
ほとんどの最新ブラウザ向けのコード:
var xmlhttp=new XMLHttpRequest()
古い Microsoft ブラウザ(IE 5 および 6)向けのコード:
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
ノードを選択
残念ながら、Internet Explorer と他のブラウザでは、XPath の処理方法が異なります。
この例には、ほとんどの主要ブラウザで動作するコードが含まれています。
Internet Explorer は、XML 文書からノードを選択するために selectNodes() メソッドを使用します:
xmlDoc.selectNodes(xpath);
Firefox、Chrome、Opera および Safari は、XML 文書からノードを選択するために evaluate() メソッドを使用します:
xmlDoc.evaluate(xpath, xmlDoc, null, XPathResult.ANY_TYPE,null);
すべての title を選択
次の例では、すべての title ノードを選択します:
最初の book の title を選択
次の例では、bookstore 要素の下の最初の book ノードの title を選択します:
ここに問題があります。上記の例は、IE と他のブラウザでは異なる結果を出力します。
IE5 以降は
一つの解決方法!
IE5+ の
次の例では、bookstore 要素の下の最初の book ノードの title を選択します:
すべての価格を選択
次の例では、price ノード内のすべてのテキストを選択します:
価格が 35 より高い price ノードを選択
次の例では、価格が 35 より高いすべての price ノードを選択します:
価格が 35 より高い title ノードを選択
次の例では、価格が 35 より高いすべての title ノードを選択します:
その他の拡張