Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Bir predikat, bir eksene göre bir düğüm kümesini filtreler (SELECT ifadesindeki WHERE cümlesine benzer). Önlem, parantez içinde belirtilir. Filtrelenecek düğüm kümesindeki her düğüm için, önlem ifadesi o düğüm bağlam düğümü olarak değerlendirilir ve düğüm kümesindeki düğüm sayısı bağlam boyutu olarak değerlendirilir. Eğer önlem ifadesi o düğüm için TRUE olarak değerlendirilirse, düğüm ortaya çıkan düğüm kümesine dahil edilir.
XPath ayrıca konum tabanlı filtreleme imkanı da verir. Bir predikat ifadesi, bir sayıya değer verdiğinde, o sıralı düğümü seçer. Örneğin, konum yolu Customer[3] üçüncü müşteriyi geri getirir. Böyle sayısal önlemler desteklenmez. Yalnızca Boolean sonucu döndüren predikat ifadeleri desteklenir.
Uyarı
XPath'ın bu XPath uygulamasının sınırlamaları ve W3C spesifikasyonu ile arasındaki farklar hakkında bilgi için Introduction to Using XPath Queries (SQLXML 4.0) bölümüne bakınız.
Seçim Önlem: Örnek 1
Aşağıdaki XPath ifadesi (konum yolu), mevcut bağlam düğümünden, ALFKI değerinde CustomerID özniteliğine sahip tüm <Müşteri> öğesi çocuklarını seçer:
/child::Customer[attribute::CustomerID="ALFKI"]
Bu XPath sorgusunda child ve attribute eksen isimleridir.
Customerdüğüm testidir (DOĞRU, eğer Customereleman> düğümü< ise çünkü <> eleman eksen child için ana düğüm tipidir).
attribute::CustomerID="ALFKI" bu yüklemdir. Yüklemde, attribute eksendir ve CustomerID düğüm testidir (TRUE, CustomerID bağlam düğümünün bir özniteliğiyse, çünkü <öznitelik> , öznitelik ekseninin ana düğüm tipidir).
Kısaltılmış sözdizimi kullanılarak, XPath sorgusu ayrıca şu şekilde belirtilebilir:
/Customer[@CustomerID="ALFKI"]
Seçim Önlem: Örnek 2
Aşağıdaki XPath ifadesi (konum yolu), mevcut bağlam düğümünden<, SalesOrderID özniteliğine sahip tüm Order> torunlarını 1 değeriyle seçer:
/child::Customer/child::Order[attribute::SalesOrderID="1"]
Bu XPath ifadesinde child ve attribute eksen isimleridir.
Customer, Order, ve SalesOrderID düğüm testleridir.
attribute::OrderID="1" bu yüklemdir.
Kısaltılmış sözdizimi kullanılarak, XPath sorgusu ayrıca şu şekilde belirtilebilir:
/Customer/Order[@SalesOrderID="1"]
Seçim Önlem: Örnek 3
Aşağıdaki XPath ifadesi (konum yolu), mevcut bağlam düğümünden, bir veya daha fazla< ContactName> çocuğu olan tüm< Müşteri> çocuklarını seçer:
child::Customer[child::ContactName]
Bu örnek, ContactName'in<> XML belgesindeki Müşteri> öğesinin bir alt öğesi< olduğunu varsayar; bu, annotasyonlu bir XSD şemasında eleman merkezli eşleme olarak adlandırılır.
Bu XPath ifadesinde, child eksen adı vardır.
Customerdüğüm testidir (DOĞRU, eğer Customereleman> düğümü< ise, çünkü <eleman> eksen child için ana düğüm tipidir).
child::ContactName bu yüklemdir. Yüklemde, child eksendir ve ContactName düğüm testidir (TRUE, eğer ContactNamebir< eleman> düğümü ise).
Bu ifade, yalnızca ContactName> öğe çocuklarına< sahip bağlam düğümünün Müşteri> öğesi çocuklarını döndürür.<
Kısaltılmış sözdizimi kullanılarak, XPath sorgusu ayrıca şu şekilde belirtilebilir:
Customer[ContactName]
Seçim Önlem: Örnek 4
Aşağıdaki XPath ifadesi, ContactName> öğe çocukları olmayan bağlam düğümünün<Müşteri> öğesi çocuklarını seçer<:
child::Customer[not(child::ContactName)]
Bu örnek, ContactName'nin> XML belgesindeki Müşteri öğesinin bir övlak öğesi olduğunu ve veritabanında ContactName alanının zorunlu olmadığını varsayar<.<>
Bu örnekte, child eksen.
Customer düğüm testidir (DOĞRU, eğer Customer bir <eleman> düğümü ise).
not(child::ContactName) bu yüklemdir. Yüklemde, child eksendir ve ContactName düğüm testidir (TRUE, eğer ContactName bir <eleman> düğümü ise).
Kısaltılmış sözdizimi kullanılarak, XPath sorgusu ayrıca şu şekilde belirtilebilir:
Customer[not(ContactName)]
Seçim Önlem: Örnek 5
Aşağıdaki XPath ifadesi, mevcut bağlam düğümünden CustomerID özniteliğine sahip tüm <Müşteri> çocuklarını seçer:
child::Customer[attribute::CustomerID]
Bu örnekte, child eksen ve Customer düğüm testidir (TRUE, eğer Customer bir <eleman> düğümü ise).
attribute::CustomerID bu yüklemdir. Yüklemde, attribute eksendir ve CustomerID önlemdir (TRUE, eğer CustomerID bir <öznitelik> düğümü ise).
Kısaltılmış sözdizimi kullanılarak, XPath sorgusu ayrıca şu şekilde belirtilebilir:
Customer[@CustomerID]
Seçim Önlem: Örnek 6
Microsoft SQLXML 4.0, aşağıdaki örnekte gösterildiği gibi, önlemde çapraz ürün içeren XPath sorgularını destekler:
Customer[Order/@OrderDate=Order/@ShipDate]
Bu sorgu, herhangi bir müşteriye eşit olan tüm müşterileri OrderOrderDateShipDateOrderseçer.
Ayrıca Bkz.
Annotated XSD Şemalarına Giriş (SQLXML 4.0)
İstemci Tarafı XML Formatlama (SQLXML 4.0)