Udostępnij za pośrednictwem


Ścieżka wyrażeń (XQuery)

XQuery ścieżka wyrażeń zlokalizuj węzłów, takich jak węzły element, atrybut i tekst w dokumencie.Wynik wyrażenie ścieżka, który jest zawsze występuje w kolejności dokumentu bez duplikatów węzłów w kolejności wyników.Określając ścieżka, można użyć składni nieskróconą lub w skróconej.Następujące informacje koncentruje się na nieskróconą składni.Składni skróconej opisano w dalszej części tego tematu.

Ostrzeżenie

Ponieważ przykładowe kwerendy w tym temacie podano przeciwko xml kolumny, wpisz CatalogDescription i instrukcje, ProductModel tabela, użytkownik powinien zapoznać się z zawartości i struktury dokumentów XML przechowywanych w tych kolumnach.Aby uzyskać więcej informacji, zobacz XML reprezentacji typu danych w bazie danych AdventureWorks2008R2.

Wyrażenie ścieżka może być względna lub bezwzględna.Opis obu tych jest następujący:

  • Wyrażenie ścieżka względnej składa się z jednego lub więcej czynności oddzielonych jedna lub dwie kreski ułamkowej (/ lub / /).Na przykład child::Features jest względna ścieżka wyrażenia, gdzie Child odnosi się tylko do węzłów podrzędność węzłów kontekstu.To jest węzeł, który jest aktualnie przetwarzane.Pobiera wyrażenie <Funkcje> dzieci węzeł elementu Węzeł kontekstu.

  • Wyrażenie ścieżka bezwzględna zaczyna się jedną lub dwie kreski ułamkowej (/ lub / /), a następnie opcjonalnie, względną ścieżkę.Na przykład, początkowe ukośnik w wyrażeniu, /child::ProductDescription, wskazuje ona wyrażenie ścieżka bezwzględnej.Ponieważ znak ukośnika na początku wyrażenia zwraca węzła głównego dokumentu węzła kontekstowego, wyrażenie zwraca wszystkie <ProductDescription> dzieci węzeł elementu głównego dokumentu.

    Jeśli ścieżka bezwzględna zaczyna pojedynczy ukośnik, może lub nie może następować przez ścieżkę względną.Jeśli określisz tylko pojedynczą kreską wyrażenie zwraca węzeł główny węzeł kontekstu.Typ danych XML jest to jego węzeł dokumentu.

Wyrażenie ścieżka składa się z kroków.Na przykład, wyrażenie ścieżka bezwzględnej, /child::ProductDescription/child::Summary,zawiera dwa kroki oddzielone znakiem kreski ułamkowej.

  • Pierwszym krokiem pobiera <ProductDescription> dzieci węzeł elementu głównego dokumentu.

  • Drugim krokiem pobiera <Podsumowanie> pobrane elementy podrzędne węzła elementu dla każdego <ProductDescription> węzeł elementu, który z kolei będzie węzeł kontekstu.

A krok ścieżka wyrażenie może być krok oś lub ogólne kroku.

Krok osi

Wkrocz oś ścieżka wyrażenie zawiera następujące części.


  • Określa kierunek ruchu.Wkrocz osi ścieżka wyrażenie, które rozpoczyna się od węzła kontekstowego i przechodzi do tych węzłów, które są osiągalne w kierunku określonego przez oś.

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

  • Zero lub więcej predykatów opcjonalne
    Filtry węzły zaznaczając niektóre i odrzucanie innym osobom.

The following examples use an axisstep in the path expressions:

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

  • Wyrażenie ścieżka względnej child::ProductDescription/child::Features, zawiera dwa kroki oddzielone znakiem kreski ułamkowej.Obie czynności Określ oś podrzędność.ProductDescription i funkcje są testów węźle.

  • Wyrażenie ścieżka względnej child::root/child::Location[attribute::LocationID=10],zawiera dwa kroki oddzielone znakiem kreski ułamkowej.Pierwszy krok określa oś (child) i testu węzła (root).Drugi krok określa wszystkich trzech komponentów kroku oś: oś (podrzędność), test węzłów (Location) i predykatu ([attribute::LocationID=10]).

Aby uzyskać więcej informacji o składnikach kroku oś, zobacz Określanie osi w kroku wyrażenie ścieżki, Określanie Test węzłów w kroku wyrażenie ścieżki, i Określanie predykaty w kroku wyrażenie ścieżki.

Krok ogólne

Ogólne krokiem jest właśnie wyrażenie, które należy oceniać sekwencja węzłów.

Implementacja XQuery w programie SQL Server obsługuje ogólne krok jako pierwszy krok w ścieżka wyrażenia.Poniżej przedstawiono przykłady wyrażeń ścieżka, które używają ogólne kroki.

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

Aby uzyskać więcej informacji zobacz Funkcja identyfikator Identyfikator funkcji (XQuery).

W tej sekcji