Definizione di un percorso (SQLXML 4.0)
Si applica a: SQL Server Database SQL di Azure
Le query XPath vengono specificate sotto forma di espressione. Sono disponibili diversi tipi di espressioni. Un percorso è un'espressione che seleziona un set di nodi relativo al nodo di contesto. Il risultato della valutazione di un percorso è un set di nodi.
Tipi di percorsi
È possibile definire un percorso in una delle forme seguenti:
Percorso assoluto
Un percorso assoluto inizia in corrispondenza del nodo radice del documento ed è costituito da una barra (/), eventualmente seguita da un percorso relativo. La barra (/) seleziona il nodo radice del documento.
Percorso relativo
Un percorso relativo inizia in corrispondenza del nodo di contesto nel documento. Un percorso è costituito da una sequenza di uno o più passi separati da una barra (/). Ogni passo seleziona un set di nodi relativi al nodo di contesto. La sequenza iniziale dei passi seleziona un set di nodi relativi a un nodo di contesto. Ogni nodo nel set viene utilizzato come nodo di contesto per il passo successivo. I set di nodi identificati dal passo vengono uniti in join. Ad esempio, child::Order/child::OrderDetail seleziona gli elementi figlio dell'elemento< OrderDetail> degli elementi figlio dell'elemento <Order> del nodo di contesto.
Nota
Nell'implementazione SQLXML 4.0 di XPath, ogni query XPath inizia in corrispondenza del contesto radice, anche se XPath non è assoluto in modo esplicito. Una query XPath che inizia con "Customer", ad esempio, viene considerata come "/Customer". Nella query XPath Customer[Order], Customer inizia nel contesto radice, ma Order inizia nel contesto del cliente. Per altre informazioni, vedere Introduzione all'uso di query XPath (SQLXML 4.0).
Passi
Un percorso (assoluto o relativo) è costituito da passi che contengono tre parti:
Axis
L'asse specifica la relazione all'interno dell'albero tra i nodi selezionati dal passo e dal nodo di contesto. Sono supportati gli assi padre, figlio, attributo e self . Se nel percorso del percorso viene specificato un asse figlio , tutti i nodi selezionati dalla query sono gli elementi figlio del nodo di contesto. Se viene specificato un asse padre , il nodo selezionato è il nodo padre del nodo di contesto. Se viene specificato un asse degli attributi , i nodi selezionati sono gli attributi del nodo di contesto.
Test del nodo
Un test di nodo specifica il tipo di nodo selezionato dal passo. Ogni asse (figlio, padre, attributo e self) ha un tipo di nodo principale. Per l'asse degli attributi, il tipo di nodo principale è< attributo>. Per gli assi padre, figlio e self , il tipo di nodo principale è <elemento>.
Ad esempio, se il percorso della posizione specifica child::Customer, vengono selezionati gli elementi figlio dell'elemento <Customer> del nodo di contesto. Poiché l'asse figlio ha <un elemento> come tipo di nodo principale, il test del nodo Customer è TRUE se Customer è un< nodo elemento.>
Predicati di selezione (zero o più)
Un predicato filtra un set di nodi rispetto a un asse. La definizione di predicati di selezione in un'espressione XPath è un'operazione simile alla definizione di una clausola WHERE in un'istruzione SELECT. Il predicato viene specificato tra parentesi. L'applicazione del test specificato nei predicati di selezione filtra i nodi restituiti dal test di nodo. Per filtrare ogni nodo nel set di nodi, l'espressione del predicato viene valutata con il nodo come nodo di contesto e con il numero di nodi nel set di nodi come dimensioni del contesto. Se l'espressione del predicato restituisce TRUE per il nodo, il nodo viene incluso nel set di nodi risultante.
La sintassi per un passo è costituita dal nome dell'asse e dal test di nodo separati da due caratteri due punti (::), seguiti da zero o più espressioni, ciascuna tra parentesi quadre. Ad esempio, l'espressione XPath (percorso percorso) child::Customer[@CustomerID='ALFKI'] seleziona tutti gli <elementi figlio dell'elemento Customer> del nodo di contesto. Il test nel predicato viene quindi applicato al set di nodi, che restituisce solo i nodi elemento <Customer> con valore di attributo 'ALFKI' per l'attributo CustomerID .
In questa sezione
Specifica di un asse (SQLXML 4.0)
Vengono forniti esempi di definizione di un asse.
Specifica di un test di nodo nel percorso (SQLXML 4.0)
Vengono forniti esempi di definizione di un test di nodo.
Specifica di predicati di selezione nel percorso (SQLXML 4.0)
Vengono forniti esempi di definizione di predicati di selezione.