Espressioni di percorso (XQuery)
Si applica a: SQL Server
Le espressioni di percorso XQuery consentono di individuare nodi, ad esempio di testo, attributo o elemento, all'interno di un documento. Il risultato di un'espressione di percorso è sempre nell'ordine del documento, senza nodi duplicati nella sequenza risultante. Nello specificare un percorso è possibile utilizzare la sintassi abbreviata o non abbreviata. Le informazioni seguenti sono relative alla sintassi non abbreviata. La sintassi abbreviata è descritta di seguito in questo argomento.
Nota
Poiché le query di esempio in questo argomento vengono specificate sulle colonne di tipo xml , CatalogDescription e Instructions, nella tabella ProductModel è consigliabile acquisire familiarità con il contenuto e la struttura dei documenti XML archiviati in queste colonne.
Esistono espressioni di percorso relativo ed espressioni di percorso assoluto. Di seguito vengono descritti ambedue i tipi di espressione:
Un'espressione di percorso relativo è costituita da uno o più passi separati da una o due barre (/ o //). Ad esempio,
child::Features
è un'espressione di percorso relativo in cuiChild
si riferisce solo ai nodi figlio del nodo di contesto attualmente elaborato. L'espressione recupera gli <elementi figlio del nodo elemento Features> del nodo di contesto.Un'espressione di percorso assoluto inizia con una o due barre (/ o //), seguite da un percorso relativo facoltativo. Ad esempio, la barra iniziale nell'espressione
/child::ProductDescription
indica che si tratta di un'espressione di percorso assoluto. Poiché un segno di barra all'inizio di un'espressione restituisce il nodo radice del documento del nodo di contesto, l'espressione restituisce tutti gli <elementi figlio del nodo elemento ProductDescription> della radice del documento.Se un percorso assoluto inizia con una sola barra, può essere o meno seguito da un percorso relativo. Se si specifica una sola barra, l'espressione restituisce il nodo radice del nodo di contesto. Per un tipo di dati XML, si tratta del nodo del documento.
Una tipica espressione di percorso è costituita da passi. Ad esempio, l'espressione di percorso assoluto, /child::ProductDescription/child::Summary
, contiene due passaggi separati da un segno di barra.
Il primo passaggio recupera gli elementi figlio del nodo dell'elemento <ProductDescription> della radice del documento.
Il secondo passaggio recupera gli elementi figlio del <nodo Elemento Summary> per ogni nodo dell'elemento <ProductDescription> recuperato, che a sua volta diventa il nodo di contesto.
Un passo in un'espressione di percorso può essere un passo dell'asse o un passo generale.
Passo dell'asse
Un passo dell'asse in un'espressione di percorso è composto dalle parti seguenti.
axis
Definisce la direzione di spostamento. Un passo dell'asse in un'espressione di percorso che inizia dal nodo di contesto e si sposta ai nodi raggiungibili nella direzione specificata dall'asse.
test del nodo
Specifica il tipo di nodo o i nomi dei nodi da selezionare.
Zero o più predicati facoltativi
Filtrano i nodi selezionandone alcuni e scartandone altri.
Gli esempi seguenti usano un asse nelle espressioni di percorso:
L'espressione di percorso assoluto
/child::ProductDescription
contiene un solo passo. Specifica un asse (child
) e un test di nodo (ProductDescription
).L'espressione di percorso relativo
child::ProductDescription/child::Features
contiene due passi separati da una barra. Entrambi i passi specificano un asse child. ProductDescription e Features sono test di nodo.L'espressione di percorso relativo,
child::root/child::Location[attribute::LocationID=10]
, contiene due passaggi separati da un segno di barra. Il primo passo specifica un asse (child
) e un test di nodo (root
). Il secondo passo specifica tutti e tre i componenti di un passo dell'asse: un asse (child), un test di nodo (Location
) e un predicato ([attribute::LocationID=10]
).
Per altre informazioni sui componenti di un passaggio dell'asse, vedere Specifica dell'asse in un passaggio dell'espressione di percorso, Specifica del test del nodo in un passaggio dell'espressione di percorso e Specifica dei predicati in un passaggio dell'espressione di percorso.
Passo generale
Un passo generale è semplicemente un'espressione che deve restituire una sequenza di nodi.
L'implementazione di XQuery in SQL Server supporta un passo generale come primo passo di un'espressione di percorso. Di seguito sono riportati alcuni esempi di espressioni di percorso che utilizzano passi generali.
(/a, /b)/c
id(/a/b)
Per altre informazioni sulla funzione ID, vedere Funzione ID (XQuery).For more information about the id function see, id Function (XQuery).
In questa sezione
Specifica dell'asse in un passaggio dell'espressione di percorso
Descrive l'utilizzo del passo dell'asse in un'espressione di percorso.
Specifica del test del nodo in un passaggio dell'espressione di percorso
Descrive l'utilizzo dei test di nodo in un'espressione di percorso.
Specifica di predicati in un passaggio dell'espressione di percorso
Descrive l'utilizzo dei predicati in un'espressione di percorso.
Uso della sintassi abbreviata in un'espressione di percorso
Descrive l'utilizzo della sintassi abbreviata in un'espressione di percorso.