di: Simone Pascuzzi 06 Agosto 2008
Lo sviluppo di tecnologie diverse ha portato la necessità di creare una notazione flessibile per navigare all'interno di un documento XML. Il risultato finale è XPath, utilizzato da XML per determinare l'identità e descrivere i campi d'azione.
Abbiamo già parlato di XPath nella Guida linguaggi XML. In questo articolo riprenderemo alcuni dei concetti già visti ma approfondiremo maggiormente alcuni costrutti fondamentali di XPath. In particolare ci concentreremo sulla costruzione delle espressioni i cosiddetti "Location Path" e le parti che li compongono, i "Location Step"
Esempio di espressione XPath
rcp:esempio[@qunant='4' and @unita='tazza']/@home
In XPath un percorso (Location Path) definisce una sequenza di nodi in un albero XML. La sequenza risultante rispetterà sempre l'ordine del documento e non conterrà mai duplicati di nodi identici. La sequenza dei nodi è definita come una sequenza di "Location Step" (passi di locazione) separati da un carattere "slash" (/), ognuno dei quali è composto da:
Ricapitolando avremo la seguente situazione:
asse :: testnodo [espr1]...[esprN]
L'espressione viene valutata a partire da un nodo principale poi si scende nelle diramazioni seguendo i passi di locazione. Questo nodo principale viene anche chiamato "contesto" perché determina il punto iniziale della ricerca.
La valutazione di un'espressione produce una serie di N nodi. Generalizzando possiamo dire che una trasformazione prende una sequenza di nodi in input e ne restituisce un'altra.
A questo punto è facile definire il comportamento di un percorso di locazione (path) come il risultato dei comportamenti dei passi (step) che lo compongono. Per capire meglio, cominciamo osservando lo schema:
Figura 1. Albero XML di esempio
Ogni nodo dell'albero ha un indice numerico univoco che lo contraddistingue ed una lettera come descrizione. Prendiamo, come esempio, il seguente percorso:
descendant :: C/child :: F
A1descendant :: C; quindi partendo dalla radice prendiamo tutti i nodi con descrizione C e che siano discendenti del nodo radice (A1)C4, C5, C9.child :: F bisogna valutare i figli che siano etichettati come F.F8, F11, F12.
Guida PodcastingUn percorso in 16 lezioni, per entrare nella filosofia del podcast... |
Guida Smil 2.0Un percorso pratico alla scoperta di SMIL: il linguaggio (XML) per... |
Guida Web serviceCosa sono, a cosa servono e come si creano servizi Web, i sistemi... |
Ogni mese, direttamente nella tua e-mail: articoli, guide, FAQ e approfondimenti sui linguaggi della famiglia XML.
Iscriviti alla newsletter