Condividi tramite


Specificare un percorso di posizione (SQLXML 4.0)

Le query XPath vengono specificate sotto forma di espressione. Esistono diversi tipi di espressioni. Un percorso è un'espressione che seleziona un set di nodi rispetto al nodo di contesto. Il risultato della valutazione di un percorso è un set di nodi.

Tipi di percorsi di posizione

Un percorso può assumere una di queste forme:

  • Percorso assoluto

    Un percorso assoluto inizia nel nodo radice del documento. È costituito da un segno di barra (/) seguito facoltativamente da un percorso relativo. Il segno di barra (/) seleziona il nodo radice del documento.

  • Percorso relativo

    Un percorso relativo inizia dal nodo di contesto nel documento. Un percorso è costituito da una sequenza di uno o più passaggi di posizione separati da un segno di barra (/). Ogni passaggio seleziona un set di nodi rispetto al nodo di contesto. La sequenza iniziale di passaggi seleziona un set di nodi rispetto a un nodo di contesto. Ogni nodo in tale set viene usato come nodo di contesto per il passaggio seguente. I set di nodi identificati da tale passaggio vengono uniti. Ad esempio, child::Order/child::OrderDetail seleziona gli elementi figlio dell'elemento <OrderDetail> degli elementi figlio dell'elemento <Order> del nodo di contesto.

    Annotazioni

    Nell'implementazione di SQLXML 4.0 di XPath ogni query XPath inizia nel contesto radice, anche se XPath non è esplicitamente assoluto. Ad esempio, una query XPath che inizia con "Customer" 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).

Passaggi percorso

Un percorso (assoluto o relativo) è costituito da passaggi di posizione che contengono tre parti:

  • Asse

    L'asse specifica la relazione di albero tra i nodi selezionati dal passaggio di posizione e dal nodo di contesto. Gli parentassi , attributechild, e self sono supportati. Se nel percorso del percorso viene specificato un child asse, tutti i nodi selezionati dalla query sono gli elementi figlio del nodo di contesto. Se viene specificato un parent asse, il nodo selezionato è il nodo padre del nodo di contesto. Se viene specificato un attribute asse, i nodi selezionati sono gli attributi del nodo di contesto.

  • Test del nodo

    Un test del nodo specifica il tipo di nodo selezionato dal passaggio di posizione. Ogni asse (child, parent, attributee self) ha un tipo di nodo principale. Per l'asse attribute , il tipo di nodo principale è <attributo>. Per gli parentassi , childe 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 child 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 specifica dei predicati di selezione in un'espressione XPath è simile alla specifica di una clausola WHERE in un'istruzione SELECT. Il predicato viene specificato tra parentesi quadre. L'applicazione del test specificato nei predicati di selezione filtra i nodi restituiti dal test del nodo. Per ogni nodo nel set di nodi da filtrare, l'espressione del predicato viene valutata con tale nodo come nodo di contesto, con il numero di nodi nel set di nodi come dimensioni del contesto. Se l'espressione del predicato restituisce TRUE per tale nodo, il nodo viene incluso nel set di nodi risultante.

    La sintassi per un passaggio di posizione è il nome dell'asse e il test del nodo separati da due punti (::), seguiti da zero o più espressioni, ognuna 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 specificare un asse.

Specifica di un test del nodo nel percorso (SQLXML 4.0)
Vengono forniti esempi di specificare un test del nodo.

Specifica dei predicati di selezione nel percorso (SQLXML 4.0)
Fornisce esempi di specificare predicati di selezione.