Selecionar e Filtrar no XQuery
- Página Anterior Adicionar XQuery
- Próxima Página Funções do XQuery
Documento de exemplo XML
Vamos continuar usando o documento "books.xml" nos exemplos a seguir (o mesmo arquivo XML usado nos capítulos anteriores).
Selecionar e filtrar elementos
Como visto nos capítulos anteriores, usamos expressões de caminho ou expressões FLWOR para selecionar e filtrar elementos.
Veja a expressão FLWOR abaixo:
for $x in doc("books.xml")/bookstore/book where $x/price>30 order by $x/title return $x/title
- for
- (opcional) Atrelar uma variável a cada item retornado por uma expressão in
- let
- (opcional)
- where
- (opcional) Definir uma condição
- order by
- (opcional) Definir a ordem do resultado
- return
- Define o conteúdo retornado no resultado
comando for
O comando for pode atrelar variáveis a cada item retornado por uma expressão in. O comando for pode gerar iterações. Pode haver múltiplos comandos for dentro de uma expressão FLWOR.
Para fazer loop uma quantidade específica de vezes em um comando for, você pode usarPalavra-chave to :
for $x in (1 to 5) return <test>{$x}</test>
Resultados:
<test>1</test> <test>2</test> <test>3</test> <test>4</test> <test>5</test>
Palavra-chave at Pode ser usado para calcular iterações:
for $x at $i in doc("books.xml")/bookstore/book/title return <book>{$i}. {data($x)}</book>
Resultados:
<book>1. Everyday Italian</book> <book>2. Harry Potter</book> <book>3. XQuery Kick Start</book> <book>4. Learning XML</book>
Também é assim no comando forPermite múltiplas expressões inUse vírgula para separar cada expressão in:
for $x in (10,20), $y in (100,200) return <test>x={$x} and y={$y}</test>
Resultados:
<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>
let declaração
A instrução let pode realizar atribuição de variáveis e evitar repetições de expressões idênticas. A instrução let não causa iterações.
let $x := (1 to 5) return <test>{$x}</test>
Resultados:
<test>1 2 3 4 5</test>
Instrução where
A instrução where define uma ou mais condições (criterios) para os resultados.
where $x/price>30 and $x/price<100
Instrução order by
A instrução order by define a ordem de classificação dos resultados. Aqui, queremos classificar os resultados com base em category e title:
for $x in doc("books.xml")/bookstore/book order by $x/@category, $x/title return $x/title
Resultados:
<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>
Instrução return:
A instrução return define o conteúdo a ser retornado.
for $x in doc("books.xml")/bookstore/book return $x/title
Resultados:
<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>
- Página Anterior Adicionar XQuery
- Próxima Página Funções do XQuery