Il miglior tutorial XQuery Selezione e filtraggio Nel 2024, in questo tutorial puoi imparare documenti di istanza XML,Selezionare e filtrare gli elementi,per dichiarazione,lasciate dichiarazione,dove le dichiarazioni,ordine dalla dichiarazione,istruzione return:,

XQuery Selezione e filtraggio

documenti di istanza XML

Nel seguente esempio si continuerà ad utilizzare questo documento "books.xml" (stesso file XML e la sezione di cui sopra viene utilizzato).

Vedere file "books.xml" nel tuo browser .


Selezionare e filtrare gli elementi

Come si è visto nel capitolo precedente, si usa l'espressione FLWOR o un'espressione di percorso per selezionare e elementi filtranti.

Si consideri la seguente espressione FLWOR:

for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
  • per - (opzionale) per ciascuno degli elementi in dotazione restituiti dall'espressione in una variabile
  • lasciare - (opzionale)
  • dove - (opzionale) impostare una condizione
  • ORDER BY - (opzionale) impostare l'ordine dei risultati
  • ritorno - le disposizioni nei risultati restituiti contenuti

per dichiarazione

dichiarazione per la variabile legata a ciascun elemento restituito dal nell'espressione. per dichiarazione iterazione. Ci possono essere molteplici per la stessa istruzione in una espressione FLWOR.

Per un determinato numero di volte in un'istruzione for loop, è possibile utilizzare le parole chiave per:

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

risultati:

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

Le parole chiave possono essere utilizzati per calcolare l'iterazione a:

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

risultati:

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

Nella dichiarazione permette anche per più di un nell'espressione. Si prega di utilizzare una virgola per separare ogni nell'espressione:

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

risultati:

<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>

lasciate dichiarazione

lasciate dichiarazione può essere ripartizione variabile completo, ed evitare di ripetere la stessa espressione. lasciate dichiarazione non causa iterazione.

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

risultati:

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

dove le dichiarazioni

dove dichiarazione viene utilizzato per impostare il risultato di una o più condizioni (criteri).

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

ordine dalla dichiarazione

ORDER BY dichiarazione per ordinare i risultati di un ordine prestabilito. Qui, vogliamo ordinare i risultati in base alla categoria e titolo:

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

risultati:

<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>

istruzione return:

istruzione return specifica per restituire i contenuti.

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

risultati:

<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>
XQuery Selezione e filtraggio
10/30