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ı
Aşağıdaki örnekler, XPath sorgularında eksenlerin nasıl belirlendiğini göstermektedir.
Bu örneklerdeki XPath sorguları, SampleSchema1.xmliçinde bulunan eşleme şemasına göre tanımlanmıştır. Bu örnek şema hakkında bilgi için Örnek Açıklamalı XSD Şeması (XPath Örnekleri için Örnek Açıklamalı XSD Şeması'na (SQLXML 4.0) bakınız.
Örnekler
A. Bağlam düğümünün alt elemanlarını elde et
Aşağıdaki XPath sorgusu, bağlam düğümünün tüm <İletişim> alt elemanlarını seçer:
/child::Contact
Sorguda, child eksendir ve Contact düğüm testidir (DOĞRU, eğer Contacteleman> düğümü< ise, çünkü <eleman> eksenle ilişkili child birincil düğüm tipidir).
Eksen child varsayılan olarak kullanılır. Bu nedenle, sorgu şu şekilde yazılabilir:
/Contact
XPath sorgusunu eşleme şemasıyla test etmek için
Örnek şema kodunu kopyalayın ve bir metin dosyasına yapıştırın. Dosyayı SampleSchema1.xmlolarak kaydet.
Aşağıdaki şablonu (XPathAxesSampleA.xml) oluşturun ve SampleSchema1.xml kaydedildiği dizine kaydedin.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="SampleSchema1.xml"> /Contact </sql:xpath-query> </ROOT>Eşleme şeması (SampleSchema1.xml) için belirtilen dizin yolu, şablonun kaydedildiği dizine görecelidir. Mutlak bir yol da belirtilebilir, örneğin:
mapping-schema="C:\MyDir\SampleSchema1.xml"Şablonu çalıştırmak için SQLXML 4.0 Test Script'i (Sqlxml4test.vbs) oluşturun ve kullanın.
Daha fazla bilgi için bkz. SQLXML 4.0 Sorguları Yürütmek için ADO Kullanma.
İşte şablon yürütme işleminin kısmi sonuç kümesi:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Contact ContactID="1" LastName="Achong" FirstName="Gustavo" Title="Mr." />
<Contact ContactID="2" LastName="Abel" FirstName="Catherine" Title="Ms." />
<Contact ContactID="3" LastName="Abercrombie" FirstName="Kim" Title="Ms." />
<Contact ContactID="4" LastName="Acevedo" FirstName="Humberto" Title="Sr." />
...
</ROOT>
B. Bağlam düğümünün torunlarını geri getir
Aşağıdaki XPath sorgu, bağlam düğümünün Müşteri> öğesi çocuklarının tüm Order öğe çocuklarını< seçer:><
/child::Customer/child::Order
Sorguda, child eksen ve Customer ve Order düğüm testleridir (bu düğüm testleri Müşteri ve Order eleman> düğümleri< ise DOĞRUDUR, çünkü eleman<> düğümü ana eksen için birincil düğümdür).
Her Müşteriyle> eşleşen< düğüm için, eşleşen Siparişler> sonuca< eklenir. Sonuç setinde sadece <Sıra> döner.
Alt eksen varsayılan olarak kullanılır. Bu nedenle, sorgu şu şekilde tanımlanabilir:
/Customer/Order
XPath sorgusunu eşleme şemasıyla test etmek için
Örnek şema kodunu kopyalayın ve bir metin dosyasına yapıştırın. Dosyayı SampleSchema1.xmlolarak kaydet.
Aşağıdaki şablonu (XPathAxesSampleB.xml) oluşturun ve aşağıdaki dizine kaydedin:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="SampleSchema1.xml"> /Customer/Order </sql:xpath-query> </ROOT>Eşleme şeması (SampleSchema1.xml) için belirtilen dizin yolu, şablonun kaydedildiği dizine görecelidir. Mutlak bir yol da belirtilebilir, örneğin:
mapping-schema="C:\MyDir\SampleSchema1.xml"Şablonu çalıştırmak için SQLXML 4.0 Test Script'i (Sqlxml4test.vbs) oluşturun ve kullanın.
Daha fazla bilgi için bkz. SQLXML 4.0 Sorguları Yürütmek için ADO Kullanma.
İşte şablon yürütme işleminin kısmi sonuç kümesi:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Order SalesOrderID="Ord-43860" SalesPersonID="280"
OrderDate="2001-08-01T00:00:00"
DueDate="2001-08-13T00:00:00"
ShipDate="2001-08-08T00:00:00">
<OrderDetail ProductID="Prod-729" UnitPrice="226.8571"
OrderQty="1" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-732" UnitPrice="440.1742"
OrderQty="1" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-738" UnitPrice="220.2496"
OrderQty="1" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-753" UnitPrice="2576.3544"
OrderQty="2" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-756" UnitPrice="1049.7528"
OrderQty="1" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-758" UnitPrice="1049.7528"
OrderQty="2" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-761" UnitPrice="503.3507"
OrderQty="2" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-762" UnitPrice="503.3507"
OrderQty="1" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-763" UnitPrice="503.3507"
OrderQty="1" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-765" UnitPrice="503.3507"
OrderQty="2" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-768" UnitPrice="503.3507"
OrderQty="1" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-770" UnitPrice="503.3507"
OrderQty="1" UnitPriceDiscount="0" />
</Order>
...
</ROOT>
XPath sorgusu Customer/Order/OrderDetail, her Müşteriyle> eşleşen< düğümden , sorgu Order<> öğelerine yönlendirilir. Ve her Order> ile eşleşen< düğüm için, sorgu OrderDetail> düğümlerini< sonuca ekler. Sonuç setinde yalnızca <OrderDetail> döner.
C. Kullanmak.. ana ekseni belirtmek için
Aşağıdaki sorgu, CustomerID özellik değeri 1 olan bir ebeveyn <Müşteri> öğesine sahip tüm <Sipariş> öğelerini alır. Sorgu, Order> elemanının ana< noktasını bulmak için predikattaki çocuk ekseni kullanır.
/child::Customer/child::Order[../@CustomerID="1"]
Alt eksen varsayılan eksendir. Bu nedenle, sorgu şu şekilde tanımlanabilir:
/Customer/Order[../@CustomerID="1"]
XPath sorgusu şuna eşdeğerdir:
/Customer[@CustomerID="1"]/Order.
Uyarı
XPath sorgusu /Order[../@CustomerID="1"] hata döndürür çünkü Order'ın<> ana birimi yoktur. Eşleme şemasında Order'ı> içeren< öğeler olabilir, ancak XPath bunların hiçbirinden başlamamıştır; bu nedenle, <Order> belgede en üst seviye öğe türü olarak kabul edilir.
XPath sorgusunu eşleme şemasıyla test etmek için
Örnek şema kodunu kopyalayın ve bir metin dosyasına yapıştırın. Dosyayı SampleSchema1.xmlolarak kaydet.
Aşağıdaki şablonu (XPathAxesSampleC.xml) oluşturun ve aşağıdaki dizine kaydedin:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="SampleSchema1.xml"> /Customer/Order[../@CustomerID="1"] </sql:xpath-query> </ROOT>Eşleme şeması (SampleSchema1.xml) için belirtilen dizin yolu, şablonun kaydedildiği dizine görecelidir. Mutlak bir yol da belirtilebilir, örneğin:
mapping-schema="C:\MyDir\SampleSchema1.xml"Şablonu çalıştırmak için SQLXML 4.0 Test Script'i (Sqlxml4test.vbs) oluşturun ve kullanın.
Daha fazla bilgi için bkz. SQLXML 4.0 Sorguları Yürütmek için ADO Kullanma.
İşte şablon yürütme işleminin kısmi sonuç kümesi:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Order SalesOrderID="Ord-43860" SalesPersonID="280"
OrderDate="2001-08-01T00:00:00"
DueDate="2001-08-13T00:00:00"
ShipDate="2001-08-08T00:00:00">
<OrderDetail ProductID="Prod-729" UnitPrice="226.8571"
OrderQty="1" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-732" UnitPrice="440.1742"
OrderQty="1" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-738" UnitPrice="220.2496"
OrderQty="1" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-753" UnitPrice="2576.3544"
OrderQty="2" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-756" UnitPrice="1049.7528"
OrderQty="1" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-758" UnitPrice="1049.7528"
OrderQty="2" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-761" UnitPrice="503.3507"
OrderQty="2" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-762" UnitPrice="503.3507"
OrderQty="1" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-763" UnitPrice="503.3507"
OrderQty="1" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-765" UnitPrice="503.3507"
OrderQty="2" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-768" UnitPrice="503.3507"
OrderQty="1" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-770" UnitPrice="503.3507"
OrderQty="1" UnitPriceDiscount="0" />
</Order>
...
</Order>
</ROOT>
D. Öznitelik ekseni belirtin
Aşağıdaki XPath sorgu, CustomerID öznitelik değeri 1 olan bağlam düğümünün tüm <Müşteri> övcü elemanlarını seçer:
/child::Customer[attribute::CustomerID="1"]
Yüklemde attribute::CustomerID, attribute eksendir ve CustomerID düğüm testidir (eğer CustomerID bir öznitelikse, düğüm testi DOĞRUDUR, çünkü öznitelik<> düğümü eksen attribute için birincil düğümdür).
Eksenine (@) bir kısayol attribute belirtilebilir ve child varsayılan eksen olduğu için sorgudan çıkarılabilir:
/Customer[@CustomerID="1"]
XPath sorgusunu eşleme şemasıyla test etmek için
Örnek şema kodunu kopyalayın ve bir metin dosyasına yapıştırın. Dosyayı SampleSchema1.xmlolarak kaydet.
Aşağıdaki şablonu (XPathAxesSampleD.xml) oluşturun ve SampleSchema1.xml kaydedildiği dizine kaydedin.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="SampleSchema1.xml"> child::Customer[attribute::CustomerID="1"] </sql:xpath-query> </ROOT>Eşleme şeması (SampleSchema1.xml) için belirtilen dizin yolu, şablonun kaydedildiği dizine görecelidir. Mutlak bir yol da belirtilebilir, örneğin:
mapping-schema="C:\MyDir\SampleSchema1.xml"Şablonu çalıştırmak için SQLXML 4.0 Test Script'i (Sqlxml4test.vbs) oluşturun ve kullanın.
Daha fazla bilgi için bkz. SQLXML 4.0 Sorguları Yürütmek için ADO Kullanma.
İşte şablon yürütme işleminin kısmi sonuç kümesi:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Customer CustomerID="1" SalesPersonID="280"
TerritoryID="1" AccountNumber="1"
CustomerType="S" Orders="Ord-43860 Ord-44501 Ord-45283 Ord-46042">
<Order SalesOrderID="Ord-43860" SalesPersonID="280"
OrderDate="2001-08-01T00:00:00"
DueDate="2001-08-13T00:00:00"
ShipDate="2001-08-08T00:00:00">
<OrderDetail ProductID="Prod-729" UnitPrice="226.8571"
OrderQty="1" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-732" UnitPrice="440.1742"
OrderQty="1" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-738" UnitPrice="220.2496"
OrderQty="1" UnitPriceDiscount="0" />
...
</Order>
...
</Customer>
</ROOT>