XPath Örneği

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

XML Örnek Belgesi

Aşağıdaki örneklerde 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>

Bu "books.xml" dosyasını tarayıcınızda görüntüleyin.

XML belgesi yükleme

Tüm modern tarayıcılar XML belgelerini yüklemek için XMLHttpRequest kullanmayı 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

Ne yazık ki, Internet Explorer ve diğer XPath işleyenler farklı şekilde davranır.

Örneklerimizde çoğu popüler tarayıcıya uygun kodlar içerir.

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

xmlDoc.selectNodes(xpath);

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

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

Tüm title'leri seçin

Aşağıdaki örnekte tüm title düğümeleri seçilir:

/bookstore/book/title

Kişisel Olarak Deneyin

İlk book'un title'sini seçin

Aşağıdaki örnekte bookstore elementinin altındaki ilk book düğümünün title'si seçilir:

/bookstore/book[1]/title

Kişisel Olarak Deneyin

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]'yu ilk düğüm olarak görürken, W3C standartlarına göre [1] olmalıdır.

IE5+ de [0] ve [1] sorununu çözmek için XPath'e dil seçimi (SelectionLanguage) yapılabilir.

Aşağıdaki örnekte bookstore elementinin altındaki ilk book düğümünün title'si seçilir:

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

Kişisel Olarak Deneyin

Tüm fiyatları seçin

Aşağıdaki örnekte price düğümündeki tüm metinler seçilir:

/bookstore/book/price/text()

Kişisel Olarak Deneyin

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

Aşağıdaki örnekte, 35'den yüksek fiyatlı tüm price düğümleri seçilir:

/bookstore/book[price>35]/price

Kişisel Olarak Deneyin

35'den yüksek fiyatlı title düğümleri seçme

Aşağıdaki örnekte, 35'den yüksek fiyatlı tüm title düğümleri seçilir:

/bookstore/book[price>35]/title

Kişisel Olarak Deneyin