Esercitazione XML

XML CASA Introduzione XML XML Come usare Albero XML Sintassi XML Elementi XML Attributi XML Spazi dei nomi XML Visualizzazione XML Richiesta HTTP XML Analizzatore XML XML DOM XPath XML XML XSLT XQuery XML XML XLink Validatore XML DTD XML Schema XML Server XML Esempi XML Quiz XML Certificato XML

XML AJAX

Introduzione AJAX AJAX XMLHttp Richiesta AJAX Risposta dell'AJAX File XML AJAX AJAX PHP AJAX ASP Database AJAX Applicazioni AJAX Esempi AJAX

XML DOM

DOM Introduzione Nodi DOM Accesso DOM Informazioni sul nodo DOM Elenco dei nodi DOM DOM attraversando Navigazione DOM DOM Ottieni valori Nodi di modifica DOM DOM Rimuovere i nodi DOM Sostituisci nodi DOM Crea nodi DOM Aggiungi nodi Clonazione dei nodi DOM Esempi DOM

Esercitazione XPath

Introduzione a XPath Nodi XPath Sintassi XPath Assi XPath Operatori XPath Esempi di XPath

Esercitazione XSLT

Introduzione a XSLT Lingue XSL Trasformazione XSLT XSLT <modello> XSLT <valore-di> XSLT <per-ciascuno> XSLT <ordina> XSLT <se> XSLT <scegli> Applicare XSLT XSLT sul Cliente XSLT sul server XSLT Modifica XML Esempi XSLT

Esercitazione XQuery

Introduzione a XQuery Esempio XQuery XQuery FLWOR XQuery HTML Termini di XQuery Sintassi XQuery Aggiungi XQuery XQuery Seleziona Funzioni XQuery

DTD XML

Introduzione alla DTD Blocchi di costruzione DTD Elementi DTD Attributi DTD Elementi DTD vs Attr Entità DTD Esempi di DTD

Schema XSD

Introduzione all'XSD XSD Come fare per XSD <schema> Elementi XSD Attributi XSD Restrizioni XSD

Complesso XSD

Elementi XSD XSD vuoto Solo elementi XSD Solo testo XSD XSD misto Indicatori XSD XSD <qualsiasi> XSD <qualsiasi attributo> Sostituzione XSD Esempio XSD

Dati XSD

Stringa XSD Data XSD Numerico XSD XSD Varie Riferimento XSD

Servizi Web

Servizi XML XML WSDL SAPONE XML XML RDF RSS XML

Riferimenti

Tipi di nodi DOM Nodo DOM Elenco nodi DOM DOM NamedNodeMap Documento DOM Elemento DOM Attributo DOM Testo DOM DOM CDATA Commento DOM DOM XMLHttpRichiesta Analizzatore DOM Elementi XSLT Funzioni XSLT/XPath

Selezione e filtraggio di XQuery


Il documento di esempio XML

Utilizzeremo il documento "books.xml" negli esempi seguenti (stesso file XML dei capitoli precedenti).

Visualizza il file "books.xml" nel tuo browser .


Selezione e filtraggio degli elementi

Come abbiamo visto nei capitoli precedenti, stiamo selezionando e filtrando gli elementi con un'espressione Path o con un'espressione FLWOR.

Osserva la seguente espressione FLWOR:

for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
  • for - (facoltativo) associa una variabile a ogni elemento restituito dall'espressione in
  • lascia - (facoltativo)
  • dove - (facoltativo) specifica un criterio
  • order by - (opzionale) specifica l'ordinamento del risultato
  • return - specifica cosa restituire nel risultato

La clausola per

La clausola for associa una variabile a ogni elemento restituito dall'espressione in. La clausola for risulta nell'iterazione. Possono esserci più clausole for nella stessa espressione FLWOR.

Per ripetere un numero specifico di volte in una clausola for, puoi utilizzare la parola chiave to :

for $x in (1 to 5)
return <test>{$x}</test>

Risultato:

<test>1</test>
<test>2</test>
<test>3</test>
<test>4</test>
<test>5</test>

La parola chiave at può essere utilizzata per contare l'iterazione:

for $x at $i in doc("books.xml")/bookstore/book/title
return <book>{$i}. {data($x)}</book>

Risultato:

<book>1. Everyday Italian</book>
<book>2. Harry Potter</book>
<book>3. XQuery Kick Start</book>
<book>4. Learning XML</book>

È consentito anche con più di uno in espressione nella clausola for. Usa la virgola per separare ciascuno nell'espressione:

for $x in (10,20), $y in (100,200)
return <test>x={$x} and y={$y}</test>

Risultato:

<test>x=10 and y=100</test>
<test>x=10 and y=200</test>
<test>x=20 and y=100</test>
<test>x=20 and y=200</test>


La clausola let

La clausola let consente assegnazioni di variabili ed evita di ripetere più volte la stessa espressione. La clausola let non risulta nell'iterazione.

let $x := (1 to 5)
return <test>{$x}</test>

Risultato:

<test>1 2 3 4 5</test>

La clausola dove

La clausola where viene utilizzata per specificare uno o più criteri per il risultato:

where $x/price>30 and $x/price<100

L'ordine per clausola

La clausola order by viene utilizzata per specificare l'ordinamento del risultato. Qui vogliamo ordinare il risultato per categoria e titolo:

for $x in doc("books.xml")/bookstore/book
order by $x/@category, $x/title
return $x/title

Risultato:

<title lang="en">Harry Potter</title>
<title lang="en">Everyday Italian</title>
<title lang="en">Learning XML</title>
<title lang="en">XQuery Kick Start</title>

La clausola di ritorno

La clausola di restituzione specifica cosa deve essere restituito.

for $x in doc("books.xml")/bookstore/book
return $x/title

Risultato:

<title lang="en">Everyday Italian</title>
<title lang="en">Harry Potter</title>
<title lang="en">XQuery Kick Start</title>
<title lang="en">Learning XML</title>