Megosztás a következőn keresztül:


Node teszt meghatározása a helymeghatározási útban (SQLXML 4.0)

A következőkre vonatkozik:SQL ServerAzure SQL Database

A csomópontteszt meghatározza a helymeghatározási lépés által kiválasztott csomóponttípust. Minden tengelynek (gyermeknek, szülőnek, attribútumnak vagy önmagnak) van egy fő csomóponttípusa. Az attribútumtengely esetében a fő csomópont típus az< attribútum>. A szülő, gyermek és önálló tengelyek esetében a fő csomóponttípus az< elem>.

Megjegyzés:

A vadkártya csomópont teszt * (például child::*) nem támogatott.

Node teszt: 1. példa

A helymeghatározási út child::Customer a <kontextuscsomópont ügyfélelem> gyermekeit választja.

Ebben a példában child a tengely és Customer a csomópont teszt. A gyermektengely fő csomóponttípusa az <elem>. Ezért a csomópont teszt IGAZ, ha az< ügyfélcsomópont>elemcsomópont<>. Ha a kontextuscsomópontnak nincs <ügyfél> gyermeke, akkor egy üres csomóponthalmazt adnak vissza.

Node teszt: 2. példa

A helyút attribute::CustomerID kiválasztja a kontextuscsomópont CustomerID attribútumát.

A példában attribute a tengely és CustomerID a csomópont teszt. Az attribútumtengely fő csomóponttípusa az <attribútum>. Ezért a csomópont teszt IGAZ, ha a CustomerIDattribútumcsomópont<>. Ha a kontextuscsomópontnak nincs CustomerID-je, akkor egy üres csomóponthalmazt kapunk vissza.

Megjegyzés:

Ebben az XPath megvalósításban, ha egy helylépés olyan <elemre> vagy <attribútumtípusra> utal, amelyet a sémában nem jelentenek ki, hiba keletkezik. Ez eltér az XPath MSXML-ben történő megvalósításától, amely üres csomóponthalmazt ad vissza.

A tengelyek rövidített szintaxisa

A hely útjának következő rövidített szintaxisa támogatott:

  • attribute::rövidíthető .@

    A helymeghatározási útvonal Customer[@CustomerID="ALFKI"] ugyanaz, mint child::Customer[attribute::CustomerID="ALFKI"].

  • child:: Ki lehet hagyni egy helylépésből.

    Így a gyermek az alapértelmezett tengely. A helymeghatározási útvonal Customer/Order ugyanaz, mint child::Customer/child::Order.

  • self::node() rövidíthető egy pontra (.), és parent::node() rövidíthető két pontra (..).