xpath. cos’è xpath: xpath e’ una sintassi per selezionare frammenti di documenti xml xpath non...

18
XPATH

Upload: panfilo-natali

Post on 02-May-2015

219 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: XPATH. Cos’è XPATH: XPath e’ una sintassi per selezionare frammenti di documenti XML XPath non e’ un linguaggio XML XPath e’ standardizzato dal W3C

XPATH

Page 2: XPATH. Cos’è XPATH: XPath e’ una sintassi per selezionare frammenti di documenti XML XPath non e’ un linguaggio XML XPath e’ standardizzato dal W3C

Cos’è XPATH:

XPath e’ una sintassi per selezionare frammenti di documenti XML

XPath non e’ un linguaggio XML

XPath e’ standardizzato dal W3C

Page 3: XPATH. Cos’è XPATH: XPath e’ una sintassi per selezionare frammenti di documenti XML XPath non e’ un linguaggio XML XPath e’ standardizzato dal W3C

A cosa serve XPATH

Page 4: XPATH. Cos’è XPATH: XPath e’ una sintassi per selezionare frammenti di documenti XML XPath non e’ un linguaggio XML XPath e’ standardizzato dal W3C

A cosa serve XPATH:

Eseguire ricerche in documenti XML, attraverso la navigazione della struttura ad albero

XPath e’ alla base della selezione dei nodi in trasformazioni XSLT

XPath e’ utilizzato per collegare documenti XML attraverso XPointer

Page 5: XPATH. Cos’è XPATH: XPath e’ una sintassi per selezionare frammenti di documenti XML XPath non e’ un linguaggio XML XPath e’ standardizzato dal W3C

Usare XPATH: in Jscript

document = new ActiveXObject ("MSXML2.DOMDocument.3.0")

document.setProperty ("SelectionLanguage", "XPath")

document.async = false

document.load("Catalog.xml")

NodoRisultato = document.selectSingleNode(expression)

NodiRisultato = document.selectNodes(expression)

document = new ActiveXObject ("MSXML2.DOMDocument.3.0")

document.setProperty ("SelectionLanguage", "XPath")

document.async = false

document.load("Catalog.xml")

NodoRisultato = document.selectSingleNode(expression)

NodiRisultato = document.selectNodes(expression)

Page 6: XPATH. Cos’è XPATH: XPath e’ una sintassi per selezionare frammenti di documenti XML XPath non e’ un linguaggio XML XPath e’ standardizzato dal W3C

Navigare tra I nodi:

Page 7: XPATH. Cos’è XPATH: XPath e’ una sintassi per selezionare frammenti di documenti XML XPath non e’ un linguaggio XML XPath e’ standardizzato dal W3C

Navigare tra I nodi:

Xpath permette la navigazione tra I nodi:

Attraverso Location Paths:

Attraverso filtri con l’utilizzo di funzioni ed operatori

Page 8: XPATH. Cos’è XPATH: XPath e’ una sintassi per selezionare frammenti di documenti XML XPath non e’ un linguaggio XML XPath e’ standardizzato dal W3C

Tipi di nodi

Page 9: XPATH. Cos’è XPATH: XPath e’ una sintassi per selezionare frammenti di documenti XML XPath non e’ un linguaggio XML XPath e’ standardizzato dal W3C

Location Path: cosa sono

Un Location Path e’ un’espressione per localizzare nodi su un documento XML

Percorso Assoluto o Relativo:Percorso Assoluto o Relativo:

Percorso relativo al nodo correntePercorso relativo al nodo corrente

Percorso dalla root “/espressione”Percorso dalla root “/espressione”

product/priceproduct/price

/catalog/product/price/catalog/product/price

/book/chapter[3]/para[1]/book/chapter[3]/para[1]

Page 10: XPATH. Cos’è XPATH: XPath e’ una sintassi per selezionare frammenti di documenti XML XPath non e’ un linguaggio XML XPath e’ standardizzato dal W3C

Costruzione Location Path

Passi di locazione

Valutati da sinistra verso destra

Ogni passo restituisce un insieme di nodida cui partire per filtraggi successivi

Ogni passo di locazione e’ costituito da 3 parti:

Esempio passo di locazione

/passo1/passo2/passo3…/passo1/passo2/passo3…

Asse::Nodo-test [predicato]Asse::Nodo-test [predicato]Asse::Nodo-test [predicato]Asse::Nodo-test [predicato]

child::product [price>35.89][3]child::product [price>35.89][3]child::product [price>35.89][3]child::product [price>35.89][3]

Page 11: XPATH. Cos’è XPATH: XPath e’ una sintassi per selezionare frammenti di documenti XML XPath non e’ un linguaggio XML XPath e’ standardizzato dal W3C

Elementi Location Paths:

ASSI:

Insieme di nodi (nodeset) che sono in una certa relazione col nodo corrente (contesto)

NODO TEST:

Filtro il nodeset ottenuto in base al nome o al tipo

PREDICATO:

Filtro il nodeset ottenuto in base a espressioni booleane

Tra tutti I figli del nodo corrente seleziono solo quelli che si chiamano

Product, e tra questi solo quelli il cui prezzo e’ superiore a 35child::product [price>35]child::product [price>35]child::product [price>35]child::product [price>35]

Page 12: XPATH. Cos’è XPATH: XPath e’ una sintassi per selezionare frammenti di documenti XML XPath non e’ un linguaggio XML XPath e’ standardizzato dal W3C

Assi:

Page 13: XPATH. Cos’è XPATH: XPath e’ una sintassi per selezionare frammenti di documenti XML XPath non e’ un linguaggio XML XPath e’ standardizzato dal W3C

Assi: Sintassi abbreviata

E’ possibile utilizzare la sintassi abbreviata per i Location paths

Page 14: XPATH. Cos’è XPATH: XPath e’ una sintassi per selezionare frammenti di documenti XML XPath non e’ un linguaggio XML XPath e’ standardizzato dal W3C

Usare Nodi Test:

priceprice @code@code

Selezionare i nodi in base al nome:

elemento attributo

Nome specifico

Tutti i nodi

Namespace

Tutti i nodi nel namespace

** @*@*

pre:pricepre:price @pre:code@pre:code

@pre:*@pre:*pre:*pre:*

Page 15: XPATH. Cos’è XPATH: XPath e’ una sintassi per selezionare frammenti di documenti XML XPath non e’ un linguaggio XML XPath e’ standardizzato dal W3C

Usare Nodi Test:

Selezionare i nodi in base al tipo:

Asse::funzioni Nodo-test

Tutti i nodi

Tutti i nodi di testo

Tutti i nodi commento

Tutti i nodi Istruzioni di elaborazione

Node()Node()

text()text()

Processing-istruction()Processing-istruction()

comment()comment()

Page 16: XPATH. Cos’è XPATH: XPath e’ una sintassi per selezionare frammenti di documenti XML XPath non e’ un linguaggio XML XPath e’ standardizzato dal W3C

Usare Predicati per filtrare nodi:

Un location Path può definire dei predicati nelle parentesi quadre:

Filtrare nodeset con i predicati

In base alla posizione

In base alla presenza

In base al contenuto

Predicati multipli:

Da sinistra a destra

//product[last()]//product[last()]

Asse::nodo-test[predicato]Asse::nodo-test[predicato]

//product[@code]//product[@code]

//product[@code=“123”]//product[@code=“123”]

//product[@code=“123”][3]//product[@code=“123”][3]

//product [3][@code=“123]//product [3][@code=“123]

Page 17: XPATH. Cos’è XPATH: XPath e’ una sintassi per selezionare frammenti di documenti XML XPath non e’ un linguaggio XML XPath e’ standardizzato dal W3C

Operatori XPath:

Confronto

Booleani

Numerici

Esempio:

> < == != > < == !=

and or and or

+ - * div mod + - * div mod

account[(balance mod 100) > 0]account[(balance mod 100) > 0]

Page 18: XPATH. Cos’è XPATH: XPath e’ una sintassi per selezionare frammenti di documenti XML XPath non e’ un linguaggio XML XPath e’ standardizzato dal W3C

Funzioni Node-Set:

Funzione Descrizione

position() Posizione del nodo (iniz 1)

last() Restituisce true se il nodo e’ l’ultimo nel nodeset

count() Numero nodi nel nodeset

id(“valore”) Elemento con Id=valore

local-name() Il nome locale senza prefisso

name() Il nome del prefisso

namespace-uri() L’URI del namespace