Contesto per le espressioni XPath
La valutazione di un'espressione XPath dipende dal contesto in cui agisce l'espressione. Il contesto è costituito dal nodo rispetto al quale viene valutata l'espressione e dal relativo ambiente associato, che include quanto segue:
La posizione del nodo di contesto nell'ordine del documento, in relazione ai propri elementi di pari livello.
La dimensione del contesto, ovvero il numero di elementi di pari livello del nodo di contesto più uno.
Associazioni variabili con le quali è possibile risolvere i riferimenti a una variabile.
Una libreria di funzioni.
Le dichiarazioni dello spazio dei nomi nell'ambito dell'espressione.
Per meglio comprendere il concetto di contesto, si prenda in considerazione una struttura ad albero che contiene nodi. Se si richiedono tutti i nodi denominati X dal livello radice della struttura ad albero, viene restituito un gruppo di risultati. Se, invece, si richiedono questi nodi da un branch della struttura ad albero, viene restituito un gruppo di risultati diverso. Pertanto, il risultato di un'espressione dipende dal contesto in cui viene eseguita.
Le espressioni XPath possono soddisfare pattern specifici in un particolare contesto, restituire i risultati ed eseguire ulteriori operazioni relative al contesto dei nodi restituiti. Pertanto le espressioni XPath offrono una flessibilità straordinaria per la ricerca nell'intera struttura ad albero del documento.
Espressioni XPath di base
Di seguito sono illustrati i tipi di base di espressioni XPath. Di seguito viene descritto ciascun tipo.
Contesto corrente
Livello radice del documento
Elemento radice
Discesa ricorsiva
Elemento specifico
Esempi
Negli esempi seguenti sono illustrate alcune espressioni XPath di base. È possibile ottenere espressioni più complesse combinando queste espressioni semplici e utilizzando i vari operatori e caratteri speciali di XPath.
Contesto corrente
Un'espressione con un punto e una barra (./) come prefisso utilizza in modo esplicito il contesto corrente come contesto. Ad esempio, l'espressione seguente fa riferimento a tutti gli elementi<author>
all'interno del contesto corrente:./author
Notare che ciò equivale a quanto segue:
author
Livello radice del documento
Un'espressione con una barra (/) come prefisso utilizza come contesto la cartella radice della struttura ad albero del documento. Ad esempio, l'espressione seguente fa riferimento all'elemento<bookstore>
alla base del documento:/bookstore
Elemento radice
Un'espressione che utilizza una barra seguita da un asterisco (/*) utilizza come contesto l'elemento radice. Ad esempio, l'espressione seguente trova l'elemento radice del documento:/*
Discesa ricorsiva
Un'espressione che utilizza la doppia barra (//) indica una ricerca che può includere zero o più livelli di gerarchia. Se questo operatore viene visualizzato all'inizio del pattern, il contesto è relativo al livello radice del documento. Ad esempio, l'espressione seguente fa riferimento a tutti gli elementi<author>
in qualsiasi posizione all'interno del documento corrente://author
Il prefisso .// indica che il contesto inizia al livello della gerarchia indicato dal contesto corrente.
Elementi specifici
Un'espressione che inizia con un nome di elemento fa riferimento a una query dell'elemento specifico, iniziando dal nodo di contesto corrente. Ad esempio, l'espressione seguente fa riferimento all'elemento<background.jpg>
all'interno dell'elemento<images>
nel nodo di contesto corrente:images/background.jpg
L'espressione seguente fa riferimento all'insieme di elementi
<book>
all'interno degli elementi<bookstore>
nel nodo di contesto corrente:bookstore/book
L'espressione seguente fa riferimento a tutti gli elementi
<first.name>
all'interno del nodo di contesto corrente:first.name
Nota: Alcuni nomi di elementi possono includere il punto (.)e possono essere utilizzati come qualsiasi altro nome.
Contesto nel DOM
Se si utilizzano espressioni XPath con il Microsoft XML Document Object Model (DOM), il contesto è l'oggetto Node di cui viene richiamato il metodo selectNodes o selectSingleNode.
Se si utilizza XPath direttamente dal DOM, si definisce il contesto da un nodo particolare.
Contesto in XSLT
Se si utilizza XPath direttamente da XSLT, si definisce il contesto in base al nodo corrente.
Altre risorse
Per ulteriori informazioni, vedere la raccomandazione W3C "XML Path Language (XPath) Version 1.0" del 16 novembre 1999 all'indirizzo www.w3.org/TR/xpath (informazioni in lingua inglese).