XPath Örnekleri

Bu bölümden, temel XPath gramerlerini örneklerle öğrenelim.

XML Örnek Belgesi

Aşağıdaki örnekte bu XML belgesini kullanacağız:

"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>

Tarayıcınızda bu "books.xml" dosyasını görün.

XML belgesi yükleme

Tüm modern tarayıcılar, XML belgelerini yüklemek için XMLHttpRequest kullanımını destekler.

Çoğu modern tarayıcı için kod:

var xmlhttp=new XMLHttpRequest()

Eski Microsoft tarayıcılar (IE 5 ve 6) için kod:

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

Düğüm seçin

Maalesef, Internet Explorer ve diğer XPath işleme yöntemleri farklıdır.

Örnek kodumuz, çoğu popüler tarayıcıya uygundur.

Internet Explorer, selectNodes() yöntemini kullanarak XML belgesinden düğümleri seçer:

xmlDoc.selectNodes(xpath);

Firefox, Chrome, Opera ve Safari, evaluate() yöntemini kullanarak XML belgesinden düğümleri seçer:

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

Tüm title seçin

Aşağıdaki örnek, tüm title düğümlerini seçer:

/bookstore/book/title

/bookstore/book[price>35]/title

选取第一个 book 的 title

IE5+'te [0] ve [1] sorunlarını çözmek için XPath'e dil seçimi (SelectionLanguage) ayarlanabilir.

İlk book'un title'ını seçin

/bookstore/book[price>35]/title

/bookstore/book[1]/title

Burada bir sorun var. Yukarıdaki örnek IE ve diğer tarayıcılar arasında farklı sonuçlar verir.

IE5 ve daha yüksek sürümler [0]'yi ilk düğüm olarak görürken, W3C standartlarına göre [1] olmalıdır.

IE5+'te [0] ve [1] sorunlarını çözmek için XPath'e dil seçimi (SelectionLanguage) ayarlanabilir.

Aşağıdaki örnek, bookstore elementi altındaki ilk book düğümünün title'ını seçer:
xml.setProperty("SelectionLanguage","XPath");

/bookstore/book[price>35]/title

xml.selectNodes("/bookstore/book[1]/title");

Tüm fiyatları seçin

price düğümlerindeki tüm metni seçen örnekler aşağıda verilmiştir:

/bookstore/book[price>35]/title

/bookstore/book/price/text()

35'den yüksek fiyatlı price düğümlerini seçin

35'den yüksek fiyatlı tüm price düğümlerini seçen örnekler aşağıda verilmiştir:

/bookstore/book[price>35]/title

/bookstore/book[price>35]/price

35'den yüksek fiyatlı title düğümlerini seçin

35'den yüksek fiyatlı tüm title düğümlerini seçen örnekler aşağıda verilmiştir:

/bookstore/book[price>35]/title