27 Ekim 2015 Salı

XPath

XPath ile  ilgil notlarım aşağıda

XPath Nedir?
XPath bir XML sorgulama dilidir. XPath programlama dilinden bağımsız olarak tasarlanmıştır. Bazı genel örnekler burada görülebilir. XPath DOM modeli üzerinde çalışır. Sorgulama sonuçları yine DOM nesneleridir.

XPath 1.0 sürümü 1999 yılında, 2.0 sürüm ise 2007 yılında yayınlandı.

Slash İşareti (/)
Aynı dosya sisteminde olduğu gibi XML düğümüne olan mutlak yolu (absolute path) gösterir.

Çift Slah (//) İşareti
Mutlak yoldan bağımsız olarak verilen isme sahip herhangi bir derinlikteki XML düğümünü gösterir.

* İşareti (/A/*)
Belirtilen yolun altındaki ilk seviyede bulunan tüm düğümleri gösterir.

Mutlak Yol (/A/B)
Belirtilen mutlak yoldaki düğümleri bulur.
Java
XPath yazısına taşıdım.

Mutlak Yol ve Köşeli Parantez ile Sıra (/A/B [1])
Belirtilen mutlak yolun altındaki ilk seviyede bulunan ve belirtilen sırada bulunan düğümü gösterir.

Attribute Seçimi
@ işareti ile düğümlerin belli attribute'lara sahip olması, olmaması gibi çeşitli seçimler yapılabilir.
Java
XPath yazısına taşıdım.

XQuery Nedir
XQuery aynı XPath gibi bir sorgulama dilidir. XPath, XQuery'nin alt kümesidir.
xquery and xpath

Sorgulama Neyi Döndürür?
Hem XQuery hem de XPath ile bir XML belgesine SQL'deki "Select All ..." şeklinde sorgula çalıştırılabilir. SQL'de birbirleri ile ilintili iki tablo arasında Join sorguları da yapılabilir. XQuery ve XPath bu tarz sorguları desteklemezler.

C#
XMLDocument sınıfı

SelectSingleNode
Örnek'te belli bir namespace içindeki tek bir elemanın text kısmı bulunuyor.

XmlDocument doc = new XmlDocument ();
doc.Load("/Users/buttercup/Projects/23564466/kram.xml");

XmlNamespaceManager nmspc = new XmlNamespaceManager(doc.NameTable);
nmspc.AddNamespace("form", "http://www.example.com/file.xsd");
nmspc.AddNamespace("addData", "http://www.example.com/file2.xsd");
nmspc.AddNamespace("_colored", "http://www.example.com/colored.xsd");

string fieldValue = doc.SelectSingleNode("/item", nmspc).InnerText;
SelectNodes
Örnek'te bir çok eleman bulunuyor.
XmlDocument document = new XmlDocument();
document.Load(@"...");

XmlNodeList itemNodes = document.SelectNodes("//item");

foreach (XmlElement node in itemNodes)
{
  if (node.Attributes.Count > 0)
  {
    if (node.HasAttribute("id"))
    {
      Console.Write(node.Attributes["id"]);
    }

  }
}
XPathNavigator sınıfı
Select metodu
SelectNodes ile çok benziyor.
document.Load("Queries.xml");
XPathNavigator navigator = document.CreateNavigator();
XPathNodeIterator iterator = navigator.Select("//query");
while (iterator.MoveNext())
{
  var command = iterator.Current.ToString();
  var name = iterator.Current.GetAttribute("name", "");
}



Hiç yorum yok:

Yorum Gönder