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
    
    ms256199.note(it-it,VS.100).gifNota:
    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).