Latest web development tutorials

XPathの例

このセクションでは、私たちはいくつかの基本的なXPath構文を例に学びましょう。


XMLインスタンス文書

私たちは、次の例では、このXML文書を使用します。

「Books.xmlを」:

<?xml version="1.0" encoding="ISO-8859-1"?>

<bookstore>

<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>

<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>

<book category="WEB">
<title lang="en">XQuery Kick Start</title>
<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">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>

</bookstore>

お使いのブラウザでの表示"books.xmlという"ファイル


XMLドキュメントを読み込みます

すべての近代的なブラウザでは、XML文書をロードするためにXMLHttpRequestの使用をサポートしています。

最も近代的なブラウザのコードの場合:

var xmlhttp=new XMLHttpRequest()

古いマイクロソフトのブラウザコードの(IE 5および6)の場合:

var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")


ノードを選択します

残念ながら、Internet ExplorerとXPathを処理する他の異なる方法。

この例では、それはほとんどの主要なブラウザのコードを含んでいました。

Internet Explorerは、ノードを選択するために、XML文書からのselectNodes()メソッドを使用しています。

xmlDoc.selectNodes(xpath);

Firefoxの、クローム、オペラとSafariは、XML文書からノードを選択する評価()メソッドを使用します。

xmlDoc.evaluate(xpath, xmlDoc, null, XPathResult.ANY_TYPE,null);


すべてのタイトルを選択

次の例では、すべてのタイトルノードを選択します。

/bookstore/book/title

»をお試しください


本の最初のタイトルを選択

次の例では、最初の本ノードタイトルの下書店要素を選択します。

/bookstore/book[1]/title

»をお試しください

問題があります。 IEと他のブラウザで異なる結果の上記の例。

IE5以降では、[0]、最初のノードとみなし、およびW3C標準によれば[1]でなければなりません。

一つの解決策!

IE5 +を解決するために、[0]、[1]の問題、あなたは、XPath(SelectionLanguage)の言語選択を設定することができます。

次の例では、最初の本ノードタイトルの下書店要素を選択します。

xml.setProperty("SelectionLanguage","XPath");
xml.selectNodes("/bookstore/book[1]/title");

»をお試しください


すべての価格を選択

次の例では、すべてのテキストノードの価格を選択します。

/bookstore/book/price/text()

»をお試しください


価格ノード35よりも高い価格を選択

次の例では、35ノードの価格よりも高いすべての価格を選択します。

/bookstore/book[price>35]/price

»をお試しください


35タイトルよりも高いノードの価格を選択

次の例では、35よりも高いすべてのタイトルノードの価格を選択します。

/bookstore/book[price>35]/title

»をお試しください