XPATH UNIVERSITA DI CAMERINO Corso di laurea in Informatica Barbara Re Anno Accademico 2006-07.

Slides:



Advertisements
Presentazioni simili
Introduzione al linguaggio C++
Advertisements

WWW XML-Namespace Fabio Vitali. WWW Fabio Vitali2 Introduzione Qui esaminiamo: u Lesigenza e il funzionamento dei Namespace in XML.
Introduzione al DTD Mario Arrigoni Neri.
Informatica 22/03/2012.
Estendere i linguaggi: i tipi di dato astratti
A. FERRARI Alberto Ferrari. L'HyperText Markup Language (HTML) (traduzione letterale: linguaggio di marcatura per ipertesti) è un linguaggio usato per.
Lezione 18 MIDI e XML Programmazione MIDI (Prof. Luca A. Ludovico)
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
PHP.
XPath (XML Path Language)
XSLT (eXtensible Stylesheet Language Transformation) Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis
Il semantic Web UNIVERSITA DI CAMERINO Corso di laurea in Informatica Barbara Re Anno Accademico
Introduzione a XML UNIVERSITA DI CAMERINO Corso di laurea in Informatica Barbara Re Anno Accademico
XSLT UNIVERSITA DI CAMERINO Corso di laurea in Informatica Barbara Re Anno Accademico
DTD e XML Schema UNIVERSITA DI CAMERINO Corso di laurea in Informatica Barbara Re Anno Accademico
XPath (XML Path Language) Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis
Ontologie: RDF e OWL UNIVERSITA’ DI CAMERINO
Query OQL e XQUERY a confronto
XML Prof. Alfredo Pulvirenti. XML XML (eXtensible Markup Language) è un meta linguaggio. Può essere definito come un insieme di regole e convenzioni che.
I file l I File sono l unità base di informazione nellinterazione tra utente e sistema operativo l Un file e costituito da un insieme di byte attinenti.
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
XML Prof. Barbara Pernici Politecnico di Milano. Introduzione a XML.
JAVASCRIPT DIFFERENZA TRA JAVASCRIPT E JAVA TAG LO SCRIPT OGGETTI LE CLASSI FUNZIONE GESTORE DI EVENTI ELEMENTI DEL LINGUAGGI è un vero e proprio linguaggio.
Esercizi di esonero (a.a. 2007/2008) Compito C, terzo esercizio Data una sequenza di caratteri s1 ed una stringa s2 diciamo che s1 è contenuta in s2 se.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Array Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 10 (12 novembre 2008) Programmazione in Java: espressioni booleane e controllo del flusso (selezione)
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Le stringhe di caratteri in Java Anno Accademico 2009/2010.
XML e XSL. XSL - eXtensible Stylesheet Language XSL è un linguaggio di annotazione che serve a "trasformare" la struttura di un documento in formato XML.
XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE.
Corso di basi di dati II Prof. Francesco Cutugno Dott. Sara Romano
Basi di Dati II Sara Romano
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
Fondamenti di Informatica I a.a Il linguaggio C Il controllo di flusso La selezione condizionale Listruzione switch I cicli Le istruzioni break,
Modello dati ALBERO Albero: Albero: insieme di punti chiamati NODI e linee chiamate EDGES EDGE: linea che unisce due nodi distinti Radice (root): in una.
Programmazione Corso di laurea in Informatica
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
Java base I: Sintassi e tipi di dati
Esercizio 1 Convertire il seguente DTD (esercizio 1 sui DTD) in XML Schema:
XSLT Trasformazioni XSL Ing. Luca Sabatucci. XSLT Uno dei vantaggi principali nell'utilizzo dell'Extensible Markup Language è la facilità con cui si possono.
1 XPath. 2 What is XPath? XPath is a syntax for defining parts of an XML document XPath uses paths to define XML elements XPath defines a library of standard.
Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)
4 Tipi di dati & variabili
I fogli di stile XSL – 2 –. Selezioni multiple : serve per applicare una regola in modo ricorsivo a nodi figli dellelemento contestuale. Attributo select.
Javascript: fondamenti, concetti, modello a oggetti
Per valutare la complessità ammortizzata scomponiamo ogni Union: nelle due FindSet e nella Link che la costituiscono e valuteremo la complessità in funzione.
Creare pagine web Xhtlm. Struttura di una pagina.
HTML Lezione 3 Stili.
XPATH.
Introduzione a Javascript
Tecnologie di InternetDocument Type Definition Dott. Nicola Dragoni Document Type Definition  Document Type Definition (DTD)  Documento XML valido 
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
Programmazione Web PHP e MySQL 1. 2Programmazione Web - PHP e MySQL Esempio: un blog.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna Università degli Studi di Bari.
Operatori di incremento e decremento
Ancora sulla shell. Shell e comandi La shell e' un programma che interpreta i comandi dell'utente. I comandi possono essere dati da terminale, oppure.
WWW XBase, XPath e XPointer Fabio Vitali. WWW Fabio Vitali2 Introduzione Qui esaminiamo: u XBase, XPath e XPointer.
I fogli di stile XSL.
WWW XBase, XPath e XPointer Fabio Vitali. WWW Fabio Vitali2 Introduzione Qui esaminiamo: u XBase, XPath e XPointer.
EXtensible Stylesheet Language Transformations (XSLT) Giuseppe Della Penna Università degli Studi di L’Aquila
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
Approfondimenti SQL.
Il modello relazionale. Modello Relazionale 2 Dal modello concettuale a quello logico Una volta stabilita la rappresentazione concettuale della realtà.
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
Transcript della presentazione:

XPATH UNIVERSITA DI CAMERINO Corso di laurea in Informatica Barbara Re Anno Accademico

Laboratorio Informatico in Database Turistici Barbara Re2 Agenda Location Path e Location Step Assi Test di nodo Predicati (o filtri) Operatori e funzioni nei filtri Precisazioni Molti esempi…

Laboratorio Informatico in Database Turistici Barbara Re3 XPath XPath è un linguaggio che permette di indirizzare parti di un documento XML XPath opera sulla struttura logica del documento, non su quella sintattica, usando una sintassi non XML accettabile allinterno di URI e attributi XPath dispone anche di primitive per eseguire semplici operazioni su stringhe, numeri e valori booleani

Laboratorio Informatico in Database Turistici Barbara Re4 Il documento secondo XPath Dal punto di vista di XPath, il documento XML è un albero Ogni elemento, commento, attributo, PI o stringa di testo (non-markup) è un nodo dellalbero I tipi di nodo sono radice elemento attributo testo namespace commento processing-instruction

Laboratorio Informatico in Database Turistici Barbara Re5 Relazioni tra nodi La struttura ad albero di XPATH ha un solo nodo radice che contiene tutti gli altri nodi dellalbero I nodi radice e i nodi degli elementi contengono liste ordinate di nodi child Tutti i nodi tranne quello radice hanno un padre I nodi parent possono avere qualsiasi numero di nodi child Gli unici nodi che possono essere nodi child sono gli elementi, i commenti, i testi e le istruzioni di elaborazione

Laboratorio Informatico in Database Turistici Barbara Re6 Attenzione Sebbene il nodo di attributo o namespace possa avere cme nodo parent un nodo di elemento o il nodo radice i nodi degli attributi o namespace non sono considerati nodi child dei loro nodi parent La relazione che sta alla base della definizione di nodo parent e nodo child consiste nel fatto che il nodo parent contiene il nodo child Il nodo degli attributi sono quindi semplicemente usati per fornire informazioni descrittive sui loro parent

Laboratorio Informatico in Database Turistici Barbara Re7 Ancora sui nodi Ogni nodo della struttura ad albero pu essere rappresentato da una stringa usata poi per confrontare in nodi La stringa di un elemento è formata dalla concatenazione delle stringhe di tutti i suoi nodi di testo child Il nodo di un attributo è formato dal valore nomalizzato dellattributo La stringa di un nodo di commento è formata soltato dal testo del commento esclusi I caratteri

Laboratorio Informatico in Database Turistici Barbara Re8 Ancora sui nodi La stringa di un nodo di eleaborazione è formata da ciò che resta dellistruzione di elaborazione dopo il target, includendo il carattere vuoto ma escludendo I caratteri finali ?> La stringa del nodo di namespace è formata dallURI del namespace

Laboratorio Informatico in Database Turistici Barbara Re9 Nome espanso sui nodi Gli elementi, gli attributi le istruzioni di elaborazione e I namespace possono avere un nome espanso che può essere usato per determinare I nodi specifici nella struttura ad albero Forma: parte locale e URI del namespace Elementi Parte locale nome elemento URI del namespace o di default o quello associato Attributi Parte locale nome attributo URI del namespace o di default o quello associato Istruzione di elaborazione Parte locale target istruzione di elaborazione URI del namespace null Namespace Parte locale prefisso (o vuota se di default) URI del namespace null

Laboratorio Informatico in Database Turistici Barbara Re10 Riassumendo!!

Laboratorio Informatico in Database Turistici Barbara Re11 Location Path e Location Step Il Location Path specifica come spostarsi tra i nodi dellalbero assoluti: iniziano con / e si riferiscono ai nodi dalla radice relativi: non iniziano con / e si riferiscono ai nodi dal nodo contesto Un Location Path è composto di una sequenza di passi di locazione (Location Step) separati da /, e letti da sinistra a destra. Ogni termine individua più precisamente un frammento della risorsa individuata in precedenza. Un location step ha tre parti Un asse, che definisce la relazione tra i nodi Un nodo di test, che definisce il tipo ed il nome dei nodi selezionati Zero o più predicati che raffinano linsieme dei nodi selezionati axis::test[pred1][pred2]…[pred N]

Laboratorio Informatico in Database Turistici Barbara Re12 Esempi /A/B/C seleziona gli elementi di C che sono figli degli elementi B che sono figli dell'elemento A che rappresenta la radice del documento XML A//B/*[1] seleziona il primo elemento ("[1]"), figlio di B, indipendentemente dal suo nome, e dal numero di nodi che intercorrono tra A e B (//). Da notare che l'esperssione non inizia con "/", quindi A è un nodo del contesto corrente. /child::A/child::B/child::C child::A/descendant-or- self::B/child::node()[1]

Laboratorio Informatico in Database Turistici Barbara Re13 Lasse è un insieme di nodi Muovendosi sullalbero del documento, XPath permette di scegliere non solo tra i figli del nodo corrente, ma anche tra una serie di altri insiemi di nodi che sono in relazione con esso La ricerca inzia sempre dal nodo corrente chiamato anche nodo di contesto Gli assi identificano quali nodi riferiti al nodo di contesto devono essere inclusi nella ricerca Lasse determina anche la sequenza di ricerca dei nodi: diretta o inversa Gli assi che selezionano i nodi che seguono il nodo di contesto nella sequenza del documento si chiamano nodi successivi (sequenza diretta) Gli assi che selezionano i nodi che precedono il nodo di contesto nella sequenza del documento si chiamano nodi precedenti (sequenza inversa) Gli Assi

Laboratorio Informatico in Database Turistici Barbara Re14 Gli Assi self Contiene il nodo corrente child Contiene gli elementi direttamente annidati nel contesto parent Contiene il padre dellelemento corrente attribute Contiene gli attributi del nodo corrente ancestor Contiene il padre del nodo, il padre del padre, ecc… ancestor-or-self Come ancestor, ma contiene anche il nodo corrente

Laboratorio Informatico in Database Turistici Barbara Re15 Gli Assi descendant Contiene tutti gli elementi annidati nel nodo corrente (con livello di annidamento arbitrario) descendant-or-self Come descendant, ma contiene anche il nodo corrente following Contiene tutti i nodi che si trovano dopo quello corrente allinterno del documento, esclusi i discendenti, gli attributi del nodo e i namespaces following-sibling Contiene tutti i nodi che hanno lo stesso livello di nidificazione nellelemento padre di quello corrente e sono posti dopo di esso (fratelli)

Laboratorio Informatico in Database Turistici Barbara Re16 Gli Assi preceding Contiene tutti i nodi che si trovano prima quello corrente allinterno del documento, esclusi i suoi antenati (ancestors), gli attributi del nodo e i namespaces preceding-sibling Contiene tutti i nodi che hanno lo stesso livello di nidificazione nellelemento padre di quello corrente e sono posti prima di esso namespace Contiene i nodi namespace dichiarati per lelemento corrente.

Laboratorio Informatico in Database Turistici Barbara Re17 / R S P IB I SS PPP B P P P PP P S P I P Asse self:: Asse parent:: Asse preceding-sibling:: Asse following-sibling:: Asse child:: Asse ancestor:: Asse preceding:: Asse following:: Asse descendant:: Un esempio di alcuni assi

Laboratorio Informatico in Database Turistici Barbara Re18 Le gerarchie secondo XPath ancestor: [c,a] ancestor-or-self: [d,c,a] attribute: [x] child: [f] descendant: [f,g] descendant-or-self: [d,f,g] following: [i,h] following-sibling: [i] namespace: [y] parent: [c] preceding: [b,e] preceding-sibling: [e] self: [d] Nodo Corrente <a><a> <c><c> <f><f>

Laboratorio Informatico in Database Turistici Barbara Re19 Riassumendo: estesa - contratta ancestor-or-self non disponibile nella sintassi abbreviata following non disponibile nella sintassi abbreviata preceding non disponibile nella sintassi abbreviata following-sibling non disponibile nella sintassi abbreviata preceding-sibling non disponibile nella sintassi abbreviata self. namespace non disponibile nella sintassi abbreviata child default, non specificato nella sintassi abbreviata descendant non disponibile nella sintassi abbreviata descendant-or-self // parent.. ancestor non disponibile nella sintassi abbreviata

Laboratorio Informatico in Database Turistici Barbara Re20 Esempi seleziona un attributo denominato href in un qualunque elemento dell'albero del documento h3[.='See also'] seleziona un elemento denominato h3 nel contesto corrente, il cui testo è uguale a "See also".

Laboratorio Informatico in Database Turistici Barbara Re21 Test di nodo (node test) Identifica, attraverso il nome o il tipo, l'oggetto da restituire e può essere del tipo Il test può essere: Un nome: Seleziona tutti i nodi che hanno quel nome text(), processing-instruction(), comment(): Seleziona tutti i nodi di tipo testo, processing instruction o commento del nodo contesto node(): Seleziona tutti i nodi indipendentemente dal tipo * : Seleziona tutti i nodi dello stesso tipo di nodo principale

Laboratorio Informatico in Database Turistici Barbara Re22 I Predicati Tutti i controlli che permettono una maggiore selezione (raffinamento/scrematura) su un dato insieme di nodi sono detti PREDICATI L'insieme di nodi iniziale viene filtrato e alla fine restano quelli che soddisfano il predicato specificato I predicati in XPath corrispondono a dei filtri sullinsieme dei nodi selezionandone una parte secondo particolari criteri Il risultato di un filtro è linsieme dei nodi filtrati Essi sono inseriti tra parentesi quadre [] In ciascuno step si possono inserire un numero arbitrario di filtri, che vengono richiamati nellordine in cui si presentano I filtri vanno posti nello step sempre dopo il node test

Laboratorio Informatico in Database Turistici Barbara Re23 I Predicati Allinterno del filtro si possono usare espressioni che abbiano valore booleano Lespressione del filtro viene valutata usando ciascun nodo del set come contesto, e se vale true il nodo viene aggiunto allinsieme dei risultati Esistono due eccezioni: Se lespressione restituisce un numero, viene selezionato il nodo in quella posizione nellinsieme (gli insiemi di nodi sono ordinati) Se lespressione restituisce un insieme di nodi, allora vale true se linsieme non è vuoto

Laboratorio Informatico in Database Turistici Barbara Re24 /collection/song //album //album[title=S] /collection/song[…] /collection/ song[…]/ title Esempi

Laboratorio Informatico in Database Turistici Barbara Re25 I Filtri - Esempi /collection/album[title = gli ID di ogni album nella collection che abbia un (figlio) title contenente il testo Supernatural. = 123] tutti gli album nella collection con ID uguale a 123. =//album[title ]/title i titoli di tutte le song nella collection che hanno un attributo album uguale allID di uno degli elementi album (presenti in qualunque punto tra i discendenti del contesto corrente) che hanno come title Supernatural

Laboratorio Informatico in Database Turistici Barbara Re26 I Filtri - Esempi //album/title[. = Supernatural] il title di tutti gli album intitolati Supernatural /collection/song[comment] tutte le song nella collection che hanno un comment /collection/song[comment[1] = Hit] tutte le song nella collection il cui primo comment contiene il testo Hit //album[3] il terzo elemento album presente in tutto il file XML

Laboratorio Informatico in Database Turistici Barbara Re27 I Filtri - Esempi = santana1] la prima song nel documento, se ha un attributo album con valore santana1 //cd[owner = = santana1]/title i title di tutte le song aventi un attributo album con valore santana1 che si trovano in un cd avente un elemento figlio owner con valore myself. //[self::song or self::album] i nodi song o album nel documento corrente, a qualsiasi livello di nidificazione

Laboratorio Informatico in Database Turistici Barbara Re28 Operatori nei Filtri Allinterno dei filtri si possono usare operatori: Confronto: = (uguale), != (diverso), > (maggiore), >= (maggiore o uguale), < (minore),<= (minore o uguale). Logici (tra espressioni filtro valide): and, or, not(…) Insiemistici: (da usare tra insiemi di nodi, ma allesterno dei filtri!): | (unione). Raggruppamento (per dare precedenza a certe espressioni, si possono usare anche allesterno dei filtri!): (…) Matematici: +, -, *, /, mod

Laboratorio Informatico in Database Turistici Barbara Re29 I Filtri - Esempi >= 5] tutti gli album con attributo tracks avente valore maggiore di cinque //song[title and artist] tutte le song aventi (almeno) un figlio title e un figlio artist != santana1 and not(comment)] tutte le song con un attributo album con valore diverso da santana1 e senza figli comment //cd/song[1] la prima song di tutti i cd (//cd/song)[1] la prima di tutte le song in tutti i cd

Laboratorio Informatico in Database Turistici Barbara Re30 Funzioni nei Filtri Allinterno dei filtri si possono usare vari tipi di funzioni: funzioni su insiemi di nodi funzioni su stringhe funzioni numeriche funzioni booleane funzioni XSLT - Specifiche (non presenti nella specifica XPath)

Laboratorio Informatico in Database Turistici Barbara Re31 Funzioni su Nodi Principali funzioni sugli insiemi di nodi count(ns): dimensione dellinsieme di nodi ns. last(): indice dellultimo elemento nellinsieme di nodi corrente. position(): posizione del nodo corrente allinterno del suo genitore. document(...): permette di accedere a documenti XML esterni id(…): restituisce il nodo con lattributi di tipo ID avente il valore dato.

Laboratorio Informatico in Database Turistici Barbara Re32 Funzioni sulle Stringhe Principali funzioni sulle stringhe: string(o): converte loggetto o in una stringa. concat(s 1,s 2,...): concatena più stringhe. substring(s,x,y): sottostringa di s che inizia al carattere x ed è lunga y (opzionale) substring-after(s,t): la sottostringa di s che inizia dopo i caratteri t substring-before(s,t): la sottostringa di s che arriva fino ai caratteri t contains(s,t): vero se s contiene t. starts-with(s,t): vero se s inizia con t. string-length(s): la lunghezza della stringa s.

Laboratorio Informatico in Database Turistici Barbara Re33 Funzioni Booleane Principali funzioni sui valori booleani: boolean(o): converte loggetto o in un valore booleano. true(): vale sempre true. false(): vale sempre false. not(e): vale lopposto di e.

Laboratorio Informatico in Database Turistici Barbara Re34 Funzioni Numeriche Principali funzioni sui valori numerici: number(o): converte loggetto o in un valore numerico. ceiling(x): restituisce lintero più piccolo che non sia minore di x. floor(x): restituisce lintero più grande che non sia maggiore di x. round(x): arrotonda x a un intero. sum(ns): converte in numeri (usando number()) tutti i nodi nellinsieme ns, e ne restituisce la somma.

Laboratorio Informatico in Database Turistici Barbara Re35 I Filtri - Esempi //song[position() = last()] lultima song nel documento. //cd[sum(song/length) > 60]/title i titoli di tutti i cd in cui la durata totale delle song è maggiore di 60. //cd[count(song) < 12] i cd con meno di 12 song. = gli album il cui attributo ID è uguale allattributo album del contesto esterno corrente.

Laboratorio Informatico in Database Turistici Barbara Re36 Un ulteriore esempio di XPath 990 Roma Scrivere un XPath che identifichi: 1.Tutti i biglietti di Luca Verdi 2.Tutti i biglietti che costano più di 1000 euro 3.Tutte le tappe di tutti i voli 4.Tutti i biglietti del 6 agosto 5.Tutti i biglietti che passano per Roma 6.Le date di tutti i biglietti che arrivano a Napoli

Laboratorio Informatico in Database Turistici Barbara Re Roma Tutti i biglietti di Luca Verdi Verdi] Un ulteriore esempio di XPath

Laboratorio Informatico in Database Turistici Barbara Re Roma Tutti i biglietti che costano più di 1000 euro //prenotazioni/biglietto[prezzo > 1000] Un ulteriore esempio di XPath

Laboratorio Informatico in Database Turistici Barbara Re Roma Tutte le tappe di tutti i voli: //tappa Un ulteriore esempio di XPath

Laboratorio Informatico in Database Turistici Barbara Re Roma Tutti i biglietti del 6 agosto Un ulteriore esempio di XPath

Laboratorio Informatico in Database Turistici Barbara Re Roma Tutti i biglietti che passano per Roma Un ulteriore esempio di XPath

Laboratorio Informatico in Database Turistici Barbara Re Roma Tutti i biglietti che arrivano a Napoli //biglietto[.//tappa[last()]="Napoli"] Un ulteriore esempio di XPath

Laboratorio Informatico in Database Turistici Barbara Re43 Riferimenti Deitel et al, XML Corso di programmazione, Apogeo Chris Bates, XML in theory and Practice, Wiley XML Path Language (XPath) Version 1.0 W3C Recommendation 16 November W3Schools Online Web Tutorials

Laboratorio Informatico in Database Turistici Barbara Re44 Ci sono domande?