C#’da xml içerisindeki verilerimizi süzerek alabilmek için sorgu dili olarak XPATH kullanabilirsiniz. XPATH sorgulamasının nasıl yapıldığı ile ilgili bilgiye sayfanın devamından ulaşabilirsiniz.
Xpath sorgusu ile xml içerisindeki verileri süzme yöntemleri
C# içerisinde xml verileriniz için XMLDocument sınıfı kullanıyorsanız iki metodundan bahsetmek istiyorum bunlardan biri SelectSingleNode() diğer ise SelectNodes()’dur. SelectSingleNode() ile XPATH sözdizimi ile filtreleme yapılarak eşleşen tek elementi getirecektir dönen sonuç değeri XmlNode’dur ama SelectNodes ile XPATH sorgusu sonucunda birden fazla elment olarak XmlNodeList dönmektedir. XmlNodeList’i for-foreach gibi döngüler ile kolayca elmentleri dolaşabilirsiniz.
XPATH Sorguları ve Açıklamaları
XPath Query | Description |
---|---|
. | Geçerli element seçer. |
.. | Geçerli elementin bir üstündeki elementi seçer. |
* | Geçerli element altında tüm elementleri seçer. |
nodename | Element adı verilerek elementler seçilir. |
/ | Kök element seçilir. |
// | Selects nodes from the current node that match the selection expression no matter where they are. |
//* | Dökümandaki tüm elementler seçilir |
/element | Selects the root element named element. Staring a path with a / means you are using an absolute path to an element. |
/element/* | Kök elementin tüm alt elementlerini almanızı sağlar. |
element/* | Belirttiğiniz element adı ile eşleşen tüm elementlerin alt elementlerini almanızı sağlar. |
element/child | Selects the child elements which are a child of a specified child element of the current node. |
//element | Döküman hiyerarşisi içerisinde nerede olursa olsun belirttiğin element adı ile eşleşen tüm elementler döndürülür. |
element//child | Belittiğiniz element adı altında yine belirttiğiniz alt element adı ile eşleşen tüm elementler geri dönderilir. |
@attribute | Aktif elementteki belirttiğiniz özelliği almanızı sağlar. |
//@attribute | Dökümanın neresinde olursa olsun belirttiğiniz özellik adı ile eşleşen tüm elementler geri dönderilir. |
@* | Aktif elemente ait tüm attribute’leri dönderir. |
element[i] | Özellikle istediğiniz bir elemente indis değeri ile erişebilirsiniz. |
text() | Selects the text of all the child nodes of the current element. |
//text() | Dökümandaki her element’in metnini almanızı sağlar. |
//element/text() | Eşleşen tüm elementlerin metnini almanızı sağlar. |
//element[name=’value’] | Element adı ve element değeri ile eşleşen tüm alt elementleri elde edebilirsiniz. |
//element[@attr=’value’] | Belirttiğiniz özellik adı ve değeri ile eşleşen tüm elementleri elde edebilirsiniz. |