Udostępnij za pośrednictwem


Wyrażenia ścieżki (XQuery)

Dotyczy:programu SQL Server

Wyrażenia ścieżki XQuery lokalizują węzły, takie jak element, atrybut i węzły tekstowe, w dokumencie. Wynik wyrażenia ścieżki zawsze występuje w kolejności dokumentu bez zduplikowanych węzłów w sekwencji wyników. W przypadku określania ścieżki można użyć niezbieżnej lub skróconej składni. Poniższe informacje koncentrują się na niewygodzonej składni. Skrócona składnia została opisana w dalszej części tego tematu.

Nuta

Ponieważ przykładowe zapytania w tym temacie są określane względem kolumn typu xml xml, CatalogDescription i instrukcji , w tabeli ProductModel należy zapoznać się z zawartością i strukturą dokumentów XML przechowywanych w tych kolumnach.

Wyrażenie ścieżki może być względne lub bezwzględne. Poniżej przedstawiono opis obu tych elementów:

  • Wyrażenie ścieżki względnej składa się z co najmniej jednego kroku oddzielonego jednym lub dwoma znakami ukośnika (/ lub //). Na przykład child::Features jest wyrażeniem ścieżki względnej, gdzie Child odnosi się tylko do węzłów podrzędnych węzła kontekstu. Jest to węzeł, który jest obecnie przetwarzany. Wyrażenie pobiera <Features> węzła podrzędnego węzła kontekstu.

  • Wyrażenie ścieżki bezwzględnej rozpoczyna się od jednego lub dwóch znaków ukośnika (/ lub //), po którym następuje opcjonalna ścieżka względna. Na przykład początkowy znak ukośnika w wyrażeniu, /child::ProductDescription, wskazuje, że jest to wyrażenie ścieżki bezwzględnej. Ponieważ znak ukośnika na początku wyrażenia zwraca węzeł główny dokumentu węzła kontekstu, wyrażenie zwraca wszystkie elementy podrzędne węzła elementu <ProductDescription> węzła głównego dokumentu.

    Jeśli ścieżka bezwzględna zaczyna się od pojedynczego znaku ukośnika, może lub nie może być po niej obserwowana ścieżka względna. Jeśli określisz tylko pojedynczy znak ukośnika, wyrażenie zwraca węzeł główny węzła kontekstu. W przypadku typu danych XML jest to jego węzeł dokumentu.

Typowe wyrażenie ścieżki składa się z kroków. Na przykład wyrażenie ścieżki bezwzględnej, /child::ProductDescription/child::Summary, zawiera dwa kroki oddzielone znakiem ukośnika.

  • Pierwszy krok pobiera <ProductDescription> węzła podrzędnego węzła dokumentu głównego dokumentu.

  • Drugi krok pobiera elementy podrzędne węzła <Podsumowanie> dla każdego pobranego węzła <ProductDescription> węzła elementu, który z kolei staje się węzłem kontekstu.

Krok w wyrażeniu ścieżki może być krokiem osi lub ogólnym krokiem.

Krok osi

Krok osi w wyrażeniu ścieżki zawiera następujące części.

osi
Definiuje kierunek ruchu. Krok osi w wyrażeniu ścieżki, który rozpoczyna się od węzła kontekstu i przechodzi do tych węzłów, które są osiągalne w kierunku określonym przez oś.

testowania węzła
Określa typ węzła lub nazwy węzłów do wybrania.

Zero lub więcej opcjonalnych predykatów
Filtruje węzły, wybierając niektóre i odrzucając inne.

W poniższych przykładach użyto osi krok w wyrażeniach ścieżki:

  • Wyrażenie ścieżki bezwzględnej, /child::ProductDescription, zawiera tylko jeden krok. Określa oś (child) i test węzła (ProductDescription).

  • Wyrażenie ścieżki względnej, child::ProductDescription/child::Features, zawiera dwa kroki oddzielone znakiem ukośnika. Oba kroki określają oś podrzędną. ProductDescription i Features to testy węzłów.

  • Wyrażenie ścieżki względnej, child::root/child::Location[attribute::LocationID=10], zawiera dwa kroki oddzielone znakiem ukośnika. Pierwszy krok określa oś (child) i test węzła (root). Drugi krok określa wszystkie trzy składniki kroku osi: oś (element podrzędny), test węzła (Location) i predykat ([attribute::LocationID=10]).

Aby uzyskać więcej informacji na temat składników kroku osi, zobacz Określanie osi w kroku wyrażenia ścieżki, Określanie testu węzła w kroku wyrażenia ścieżkii Określanie predykatów w kroku wyrażenia ścieżki.

Krok ogólny

Ogólny krok to tylko wyrażenie, które musi zostać obliczone na sekwencję węzłów.

Implementacja XQuery w programie SQL Server obsługuje ogólny krok jako pierwszy krok w wyrażeniu ścieżki. Poniżej przedstawiono przykłady wyrażeń ścieżki, które korzystają z ogólnych kroków.

(/a, /b)/c  
id(/a/b)  

Aby uzyskać więcej informacji na temat funkcji id, zobacz id Function (XQuery).

W tej sekcji

określanie osi w kroku wyrażenia ścieżki
Opisuje pracę z krokiem osi w wyrażeniu ścieżki.

określanie testu węzła w kroku wyrażenia ścieżki
Opisuje pracę z testami węzłów w wyrażeniu ścieżki.

określanie predykatów w kroku wyrażenia ścieżki
Opisuje pracę z predykatami w wyrażeniu ścieżki.

przy użyciu składni skróconej w wyrażeniu ścieżki
Opisuje pracę ze skróconą składnią w wyrażeniu ścieżki.