Udostępnij za pośrednictwem


Określanie Test węzłów w ścieżce lokalizacji (SQLXML 4.0)

Test węzłów określa typ węzła zaznaczony krok lokalizacji.Każdej oś (child, parent, attribute, lub self) ma typ węzła głównego.Dla attribute oś, typ węzła głównego jest <atrybut>.Dla parent, child, i self osi, typ węzła głównego jest <elementu>.

Ostrzeżenie

Test węzłów symbol wieloznaczny * (na przykład child::*) nie jest obsługiwany.

Test węzłów: Przykład 1

Ścieżka lokalizacji child::Customer wybiera <klienta> elementy podrzędne elementu Węzeł kontekstu.

W tym przykładzie child jest oś i Customer jest rozgrzanych węzłaTyp węzła głównego dla child oś jest <elementu>.Dlatego badanie węzeł ma wartość PRAWDA, jeśli <klienta> węzeł jest <elementu> węzła.Jeśli węzeł kontekstu nie ma <klienta> dzieci, zwracany jest pusty zestaw węzłów.

Test węzłów: Przykład 2

Ścieżka lokalizacji attribute::CustomerID wybiera IDklienta atrybut węzeł kontekstu.

W przykładzie attribute jest oś i CustomerID jest rozgrzanych węzłaTyp węzła głównego attribute oś jest <atrybut>.Dlatego badanie węzeł ma wartość PRAWDA, jeśli IDklienta jest <atrybut> węzła.Jeśli węzeł kontekstu nie ma IDklienta, zwracany jest pusty zestaw węzłów.

Ostrzeżenie

W tej implementacji XPath, jeśli lokalizacja kroku odnosi się do <elementu> lub <atrybut> typu, które nie są zadeklarowane w schemacie, zostanie wygenerowany błąd.To różni się od implementacji XPath w MSXML, która zwraca zestaw węzłów puste.

Skrócona składnia dla osi

Jest obsługiwana poniższa składnia skróconej ścieżka lokalizacji:

  • attribute::mogą być skracane do @.

    Ścieżka lokalizacji Customer[@CustomerID="ALFKI"] jest taka sama jak child::Customer[attribute::CustomerID="ALFKI"].

  • child:: można pominąć krok lokalizacji.

    W ten sposób child jest domyślnie oś.Ścieżka lokalizacji Customer/Order jest taka sama jak child::Customer/child::Order.

  • self::node()może zostać skrócona do jednej kropki (.), i parent::node() może zostać skrócona do dwóch kropek (.).