XPath Introduction

Merhaba arkadaşlar, XPath ve XSL yazılarıma başlamaktayım. Yazı dizisini okumadan önce xml hakkında en azından giriş seviye bir bilgi sahibi olduğunuzu varsayarak anlatıcağımı bilmenizi isterim.

XPath

Temel manada xml dosyası içerisindeki istenen bilgiye ulaşmayı sağlar ve W3C XSLT standartının önemli bir parçasıdır. XML için query language olarak bilinir. XPath expression ile xml dokümanı içerisindeki en uç nokta yada özel olarak bir node’un bilgisine ulaşılabilir. Bunun yanında bazı fonksiyonlar yardımıyla string, boolean ve number gibi değerlerde manipülasyonlar yapabilmekteyiz. W3C XSLT şemasına bakalım;

XML_languages.svg

XPath Expression

XPath expression ile herhangi bir xml node yada node-set yani node listesine erişebiliriz. Oldukça temiz bir syntaxı ve basitliği vardır. File sistemlerine benzer bir yapı mevcuttur. Örn; /students/student örneğindeki gibi root node students olan xml içerisindeki student node’lara erişmeyi sağlamaktadır. Yada /students/* ile root node students altındaki tüm node’lara işaret edebiliriz. Yeri geldikçe bu konulara değineceğim. XPath expression XSL tarafından xml’in xsl’e transform edilmesinde ve XPointer tarafından xml’deki bir alanın adreslenmesinde kullanılmaktadır.

XPath Standart Library

XPath içerisinde standart olarak 100’ün üzerinde fonksiyon mevcuttur. Bunlar string işlemeye, date ve time vb compare etme işlemlerine bize yardımcı olmaktadır.

XPath is Used in XSLT

XPath, XSLT için bir elementtir. XPath bilmeden XSLT(XSL) döküman oluşturamazsınız. Bu yüzden ilk önce XPath öğrenerek işe başlanmalıdır. Yeri gelmişken XSL için de XML’in CSS’i diyebiliriz. XML dosyalarından biçimli çıktı oluşturmamızı sağlamaktadır.

 

Örnek bir xml üzerinden XPath terminolojisindeki terimleri açıklamaya çalışalım;

Yukarıdaki dosyanın adının employees.xml olduğunu varsayalım.

XPath terminolojisinde ilk olarak NODE kavramına değinelim; XPath içerisinde node olarak değerlendirilen 7 farklı node vardır. Bunlar; element, attribute, text, namespace, processing-instruction, comment ve document node. Bir xml dokumanı içerisinde ise 3 adet node ağacı olduğu varsayılır. Bunlar ise; root element node, attribute node ve element node’dur.

Yukarıdaki örnek xml içerisinde bu alanlar şunlara karşılık gelmektedir;

  • employees tagı xml dokumanı için root elementtir.
  • name tagı bir element node’dur.
  • id=”1″ ise bir attribute node’dur.

Not : Atomic value, herhangi bir parent yada child node’u olmayan node’dun değeridir. Burada id ve name tagı içerisindeki 1 ile alican değerleri atomic value’dirler.

Yazımı burada sonlandırmak istiyorum arkadaşlar. Bu yazıda ufak bir giriş yapmış olduk ve XPath nedir dediğimizde bizim de söyleyeceğimiz bir iki cümle öğrendik diye düşünüyorum

896 Total Views 1 Views Today