Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Följande exempel visar hur axlar specificeras i XPath-frågor.
XPath-frågorna i dessa exempel specificeras mot mappningsschemat som finns i SampleSchema1.xml. För information om detta exempelschema, se Exempel annoterat XSD-schema för XPath-exempel (SQLXML 4.0).
Examples
A. Hämta barnelement i kontextnoden
Följande XPath-fråga väljer alla <Kontaktbarn-element> i kontextnoden:
/child::Contact
I frågan child är axeln och Contact är nodtestet (SANT om Contact är en <elementnod> , eftersom <elementet> är den primära nodtypen associerad med axeln child ).
Axeln child är standard. Därför kan frågan skrivas som:
/Contact
För att testa XPath-frågan mot mappningsschemat
Kopiera exempelschemakoden och klistra in den i en textfil. Spara filen som SampleSchema1.xml.
Skapa följande mall (XPathAxesSampleA.xml) och spara den i katalogen där SampleSchema1.xml sparades.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="SampleSchema1.xml"> /Contact </sql:xpath-query> </ROOT>Den katalogväg som anges för mappningsschemat (SampleSchema1.xml) är relativ till katalogen där mallen sparas. En absolut väg kan också specificeras, till exempel:
mapping-schema="C:\MyDir\SampleSchema1.xml"Skapa och använd SQLXML 4.0 Test Script (Sqlxml4test.vbs) för att köra mallen.
Mer information finns i Använda ADO för att köra SQLXML 4.0-frågor.
Här är den delvisa resultatuppsättningen för mallens exekvering:
<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. Hämta barnbarn till kontextnoden
Följande XPath-fråga väljer alla <Order-elementbarn> till <Customer-elementbarnen> till kontextnoden:
/child::Customer/child::Order
I frågan child är axeln och Customer och Order är nodtesterna (dessa nodtester är SANNA om Customer och Order är <elementnoder> , eftersom <elementnoden> är primärnoden för barnaxeln ). För varje nod som matchar <kund> läggs noder som matchar <order> till resultatet. Endast <Order> returneras i resultatuppsättningen.
Barnaxeln är standard. Därför kan frågan specificeras som:
/Customer/Order
För att testa XPath-frågan mot mappningsschemat
Kopiera exempelschemakoden och klistra in den i en textfil. Spara filen som SampleSchema1.xml.
Skapa följande mall (XPathAxesSampleB.xml) och spara den i katalogen där:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="SampleSchema1.xml"> /Customer/Order </sql:xpath-query> </ROOT>Den katalogväg som anges för mappningsschemat (SampleSchema1.xml) är relativ till katalogen där mallen sparas. En absolut väg kan också specificeras, till exempel:
mapping-schema="C:\MyDir\SampleSchema1.xml"Skapa och använd SQLXML 4.0 Test Script (Sqlxml4test.vbs) för att köra mallen.
Mer information finns i Använda ADO för att köra SQLXML 4.0-frågor.
Här är den delvisa resultatuppsättningen för mallens exekvering:
<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>
Om XPath-frågan anges som Customer/Order/OrderDetail, från varje nod som matchar <Kund> , navigerar frågan till dess <Order-element> . Och för varje nod som matchar <Order> lägger frågan till nodernas <OrderDetail> till resultatet. Endast <OrderDetail> returneras i resultatuppsättningen.
C. Använda.. för att specificera föräldraaxeln
Följande fråga hämtar alla <Order-element> med ett föräldra-Kund-element <> med ett CustomerID-attribut på 1. Frågan använder barnaxeln i predikatet för att hitta föräldern till Order-elementet<>.
/child::Customer/child::Order[../@CustomerID="1"]
Barnaxeln är standardaxeln. Därför kan frågan specificeras som:
/Customer/Order[../@CustomerID="1"]
XPath-frågan är ekvivalent med:
/Customer[@CustomerID="1"]/Order.
Anmärkning
XPath-frågan /Order[../@CustomerID="1"] kommer att returnera ett fel eftersom det inte finns någon förälder till <Order>. Även om det kan finnas element i mappningsschemat som innehåller <Order>, började inte XPath vid något av dem; följaktligen <anses Order> vara den övergripande elementtypen i dokumentet.
För att testa XPath-frågan mot mappningsschemat
Kopiera exempelschemakoden och klistra in den i en textfil. Spara filen som SampleSchema1.xml.
Skapa följande mall (XPathAxesSampleC.xml) och spara den i katalogen där:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="SampleSchema1.xml"> /Customer/Order[../@CustomerID="1"] </sql:xpath-query> </ROOT>Den katalogväg som anges för mappningsschemat (SampleSchema1.xml) är relativ till katalogen där mallen sparas. En absolut väg kan också specificeras, till exempel:
mapping-schema="C:\MyDir\SampleSchema1.xml"Skapa och använd SQLXML 4.0 Test Script (Sqlxml4test.vbs) för att köra mallen.
Mer information finns i Använda ADO för att köra SQLXML 4.0-frågor.
Här är den delvisa resultatuppsättningen för mallens exekvering:
<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. Ange attributaxeln
Följande XPath-fråga väljer alla <Kundbarn-element> i kontextnoden med ett CustomerID-attributvärde 1:
/child::Customer[attribute::CustomerID="1"]
I predikatet attribute::CustomerIDär axeln attribute och CustomerID är nodtestet (om CustomerID är ett attribut är nodtestet SANT, eftersom <attributnoden> är den primära noden för axeln attribute ).
En genväg till axeln attribute (@) kan specificeras, och eftersom child är standardaxeln kan den utelämnas från frågan:
/Customer[@CustomerID="1"]
För att testa XPath-frågan mot mappningsschemat
Kopiera exempelschemakoden och klistra in den i en textfil. Spara filen som SampleSchema1.xml.
Skapa följande mall (XPathAxesSampleD.xml) och spara den i katalogen där SampleSchema1.xml sparas.
<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>Den katalogväg som anges för mappningsschemat (SampleSchema1.xml) är relativ till katalogen där mallen sparas. En absolut väg kan också specificeras, till exempel:
mapping-schema="C:\MyDir\SampleSchema1.xml"Skapa och använd SQLXML 4.0 Test Script (Sqlxml4test.vbs) för att köra mallen.
Mer information finns i Använda ADO för att köra SQLXML 4.0-frågor.
Här är den delvisa resultatuppsättningen för mallens exekvering:
<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>