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
XPath-frågor specificeras i form av ett uttryck. Det finns olika slags uttryck. En platsväg är ett uttryck som väljer en mängd noder relativt kontextnoden. Resultatet av att utvärdera en platsväg är en noduppsättning.
Typer av platsvägar
En platsväg kan anta någon av dessa former:
Absolut platsväg
En absolut plats-väg börjar vid dokumentets rotnod. Den består av ett snedstreck (/) som valfritt följs av en relativ platsbana. Snedstrecket (/) väljer dokumentets rotnod.
Relativ platsbana
En relativ plats-väg börjar vid kontextnoden i dokumentet. En platsväg består av en sekvens av ett eller flera platssteg separerade av ett snedstreck (/). Varje steg väljer en uppsättning noder relativt kontextnoden. Den initiala sekvensen av steg väljer en uppsättning noder relativt en kontextnod. Varje nod i den mängden används som kontextnod för nästa steg. De mängder av noder som identifieras av det steget är sammanfogade. Till exempel väljer child::Order/child::OrderDetail OrderDetail-elementbarnen till <OrderElement-barnen>>till kontextnoden.<
Anmärkning
I SQLXML 4.0-implementeringen av XPath börjar varje XPath-fråga vid rot-kontexten, även om XPath inte är uttryckligen absolut. Till exempel behandlas en XPath-fråga som börjar med "Customer" som "/Customer". I XPath-frågan Customer[Order] börjar Customer vid rot-kontexten, men Order börjar vid Customer context. För mer information, se Introduktion till användning av XPath-frågor (SQLXML 4.0).
Platssteg
En platsväg (absolut eller relativ) består av platssteg som innehåller tre delar:
Axel
Axeln specificerar trädrelationen mellan de noder som väljs av platssteget och kontextnoden. Förälder-, barn-, attribut- och självaxlar stöds. Om en barnaxel anges i platsstigen är alla noder som valts av frågan barn till kontextnoden. Om en föräldraaxel anges är den valda noden föräldranoden till kontextnoden. Om en attributaxel anges är de valda noderna attributen för kontextnoden.
Nodtest
Ett nodtest specificerar nodtypen som valts av platssteget. Varje axel (barn, förälder, attribut och själv) har en huvudnodtyp. För attributaxeln är huvudnodtypen attribut<.> För förälder-, barn- och självaxlar är <huvudnodtypen element>.
Till exempel, om platsvägen specificerar child::Customer, väljs <Customer-elementets> barn till kontextnoden. Eftersom barnaxeln har <element> som huvudnodtyp är nodtestet, Customer, SANT om Customer är en <elementnod> .
Selektionspredikat (noll eller fler)
Ett predikat filtrerar en nodmängd med avseende på en axel. Att specificera urvalspredikat i ett XPath-uttryck liknar att specificera en WHERE-klausul i en SELECT-sats. Predikatet anges inom parenteser. Att tillämpa testet som specificeras i urvalspredikaten filtrerar de noder som returneras av nodtestet. 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.
Syntaxen för ett platssteg är axelnamnet och nodtestet separerade av två kolon (::)), följt av noll eller fler uttryck, vardera inom hakparentes. Till exempel väljer XPath-uttrycket (platsväg) barn::Customer[@CustomerID='ALFKI'] alla <Kund-elementbarnen> till kontextnoden. Därefter appliceras testet i predikatet på noduppsättningen, som endast returnerar <Customer-elementnoder> med attributvärdet 'ALFKI' för sitt CustomerID-attribut .
I det här avsnittet
Specificering av en axel (SQLXML 4.0)
Ger exempel på att specificera en axel.
Specificering av ett nodtest i platssökvägen (SQLXML 4.0)
Ger exempel på att specificera ett nodtest.
Specificering av urvalspredikat i platsvägen (SQLXML 4.0)
Ger exempel på att specificera urvalspredikat.