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
Ett predikat filtrerar en nodmängd med avseende på en axel (liknande en WHERE-klausul i ett SELECT-sats). Predikatet anges inom parenteser. För varje nod i nodmängden som ska filtreras utvärderas predikatuttrycket med den noden som kontextnod, med antalet noder i nodmängden som kontextstorlek. Om predikatuttrycket utvärderas till SANT för den noden, inkluderas noden i den resulterande noduppsättningen.
XPath tillåter också positionsbaserad filtrering. Ett predikatuttryck som utvärderar till ett tal väljer den ordinala noden. Till exempel returnerar platsvägen Customer[3] den tredje kunden. Sådana numeriska predikat stöds inte. Endast predikatuttryck som returnerar ett booleskt resultat stöds.
Anmärkning
För information om begränsningarna i denna XPath-implementation av XPath och skillnaderna mellan den och W3C-specifikationen, se Introduktion till användning av XPath-frågor (SQLXML 4.0).
Urvalspredikat: Exempel 1
Följande XPath-uttryck (platsväg) väljer från den aktuella kontextnoden alla <Customer-elementbarn> som har CustomerID-attributet med värdet ALFKI:
/child::Customer[attribute::CustomerID="ALFKI"]
I denna XPath-fråga child är och attribute axelnamn.
Customer är nodtestet (SANT om Customer är en <elementnod>, eftersom <elementet> är huvudnodtypen för axeln child ).
attribute::CustomerID="ALFKI" är predikatet. I predikatet attribute är axeln och CustomerID är nodtestet (SANT om CustomerID är ett attribut för kontextnoden, eftersom <attributet> är huvudnodtypen av attributaxel ).
Med hjälp av den förkortade syntaxen kan XPath-frågan också specificeras som:
/Customer[@CustomerID="ALFKI"]
Urvalspredikat: Exempel 2
Följande XPath-uttryck (platsväg) väljer från den aktuella kontextnoden alla <Order-barnbarn> som har attributet SalesOrderID med värdet 1:
/child::Customer/child::Order[attribute::SalesOrderID="1"]
I detta XPath-uttryck child är och attribute axelnamnen.
Customer, Order, och SalesOrderID är nodtesterna.
attribute::OrderID="1" är predikatet.
Med hjälp av den förkortade syntaxen kan XPath-frågan också specificeras som:
/Customer/Order[@SalesOrderID="1"]
Urvalspredikat: Exempel 3
Följande XPath-uttryck (platsväg) väljer från den aktuella kontextnoden alla <kundbarn> som har ett eller flera <ContactName-barn> :
child::Customer[child::ContactName]
Detta exempel antar att <ContactName är ett barnelement till Customer-elementet><> i XML-dokumentet, vilket kallas elementcentrerad mappning i ett annoterat XSD-schema.
I detta XPath-uttryck child är axelns namn.
Customer är nodtestet (SANT om Customer är en <elementnod> , eftersom <element> är huvudnodtypen för child axeln).
child::ContactName är predikatet. I predikatet child är axeln och ContactName är nodtestet (SANT om ContactName är en <elementnod> ).
Detta uttryck returnerar endast <de Kund-elementbarn> till kontextnoden som har <ContactName-elementbarn> .
Med hjälp av den förkortade syntaxen kan XPath-frågan också specificeras som:
Customer[ContactName]
Urvalspredikat: Exempel 4
Följande XPath-uttryck väljer <Kund-elementbarn> till kontextnoden som inte har <ContactName-elementbarn> :
child::Customer[not(child::ContactName)]
Detta exempel antar att <ContactName> är ett barnelement till Kund-elementet <> i XML-dokumentet, och att ContactName-fältet inte krävs i databasen.
I detta exempel child är axeln.
Customer är nodtestet (SANT om Customer är en <elementnod> ).
not(child::ContactName) är predikatet. I predikatet child är axeln och ContactName är nodtestet (SANT om ContactName är en <elementnod> ).
Med hjälp av den förkortade syntaxen kan XPath-frågan också specificeras som:
Customer[not(ContactName)]
Urvalspredikat: Exempel 5
Följande XPath-uttryck väljer från den aktuella kontextnoden alla <Kundbarn> som har attributet CustomerID :
child::Customer[attribute::CustomerID]
I detta exempel child är axeln och Customer är nodtestet (SANT om Customer är en <elementnod> ).
attribute::CustomerID är predikatet. I predikatet attribute är axeln och CustomerID predikatet (SANT om CustomerID är en< attributnod>).
Med hjälp av den förkortade syntaxen kan XPath-frågan också specificeras som:
Customer[@CustomerID]
Urvalspredikat: Exempel 6
Microsoft SQLXML 4.0 inkluderar stöd för XPath-frågor som innehåller en korsprodukt i predikatet, som visas i följande exempel:
Customer[Order/@OrderDate=Order/@ShipDate]
Denna fråga väljer alla kunder med ett för vilket Order som är OrderDate lika med av ShipDate varje Order.
Se även
Introduktion till annoterade XSD-scheman (SQLXML 4.0)
Klientsida XML-formatering (SQLXML 4.0)