Delen via


Het specificeren van een locatiepad (SQLXML 4.0)

Van toepassing op:SQL ServerAzure SQL Database

XPath-queries worden gespecificeerd in de vorm van een expressie. Er zijn verschillende soorten uitdrukkingen. Een locatiepad is een uitdrukking die een verzameling knooppunten selecteert ten opzichte van de contextknoop. Het resultaat van het evalueren van een locatiepad is een knoopset.

Soorten locatiepaden

Een locatiepad kan een van deze vormen aannemen:

  • Absoluut locatiepad

    Een absolute locatie-route begint bij de wortelknoop van het document. Het bestaat uit een schuine streep (/) die optioneel gevolgd kan worden door een relatief locatiepad. Het slash-teken (/) selecteert de wortelknoop van het document.

  • Relatieve locatiepad

    Een relatief locatiepad begint bij de contextknoop in het document. Een locatiepad bestaat uit een reeks van één of meer locatiestappen, gescheiden door een slashmarkering (/). Elke stap selecteert een set knooppunten ten opzichte van de contextknoop. De initiële reeks stappen selecteert een set knopen ten opzichte van een contextknoop. Elke node in die set wordt gebruikt als contextnode voor de volgende stap. De verzamelingen knopen die door die stap zijn geïdentificeerd, worden samengevoegd. Bijvoorbeeld, child::Order/child::OrderDetail selecteert de <OrderDetail-elementkinderen van de Order-elementkinderen>>van de contextknoop.<

    Opmerking

    In de SQLXML 4.0-implementatie van XPath begint elke XPath-query bij de root-context, zelfs als de XPath niet expliciet absoluut is. Een XPath-query die begint met "Customer" wordt bijvoorbeeld behandeld als "/Customer". In de XPath-query Customer[Order] begint de klant bij de wortelcontext, maar Order begint bij de klantcontext. Voor meer informatie, zie Inleiding tot het gebruik van XPath-queries (SQLXML 4.0).

Locatiestappen

Een locatiepad (absoluut of relatief) bestaat uit locatiestappen die uit drie delen bestaan:

  • As

    De as specificeert de boomrelatie tussen de knooppunten die door de locatiestap zijn geselecteerd en de contextknoop. De ouder-, kind-, attribuut- en zelfaxen worden ondersteund. Als een kindas is gespecificeerd in het locatiepad, zijn alle door de query geselecteerde knooppunten de kinderen van de contextknoop. Als een ouderas wordt gespecificeerd, is de geselecteerde knoop de ouderknoop van de contextknoop. Als een attribuutas wordt gespecificeerd, zijn de geselecteerde knooppunten de attributen van de contextknoop.

  • Knooptest

    Een knooppunttest specificeert het knooppunttype dat door de locatiestap wordt gekozen. Elke as (kind, ouder, attribuut en zelf) heeft een hoofdknooptype. Voor de attribuutas is <het hoofdknooptype attribuut>. Voor de ouder-, kind- en zelfassen is <het hoofdknooptype element>.

    Als bijvoorbeeld het locatiepad child::Customer specificeert, worden de <Customer-element> kinderen van de contextknoop geselecteerd. Omdat de kindaselement> als hoofdknooppunt heeft<, is de knooppunttest, Customer, WAAR als Klant een <elementknoop> is.

  • Selectiepredicaten (nul of meer)

    Een predicaat filtert een knoopverzameling met betrekking tot een as. Het specificeren van selectiepredicaten in een XPath-expressie is vergelijkbaar met het specificeren van een WHERE-clausule in een SELECT-instructie. Het predicaat wordt tussen haakjes gespecificeerd. Het toepassen van de test die in de selectiepredicaten is gespecificeerd, filtert de knooppunten die door de knooppunttest worden teruggegeven. Voor elke knoop in de knooppuntset die gefilterd moet worden, wordt de predicaatexpressie geëvalueerd met die knoop als contextknoop, met het aantal knopen in de knooppuntenset als contextgrootte. Als de predicaatexpressie voor die knoop naar WAAR geëvalueerd wordt, wordt de knoop opgenomen in de resulterende knoopset.

    De syntaxis voor een locatiestap is de asnaam en knooppunttest, gescheiden door twee dubbele punten (::)), gevolgd door nul of meer uitdrukkingen, elk tussen vierkante haken. Bijvoorbeeld, het XPath-expressiekind (locatiepad) selecteert alle <Customer>@CustomerID-elementenkinderen van de contextknoop. Vervolgens wordt de test in het predicaat toegepast op de node-set, die alleen de <Customer-elementknooppunten> met attribuutwaarde 'ALFKI' voor zijn CustomerID-attribuut teruggeeft.

In deze sectie

Specificeren van een as (SQLXML 4.0)
Geeft voorbeelden van het specificeren van een as.

Het specificeren van een knooptest in het locatiepad (SQLXML 4.0)
Geeft voorbeelden van het specificeren van een nodetest.

Het specificeren van selectiepredicaten in het locatiepad (SQLXML 4.0)
Geeft voorbeelden van het specificeren van selectiepredicaten.