Tutorial de XML

XML INÍCIO Introdução ao XML XML Como usar Árvore XML Sintaxe XML Elementos XML Atributos XML Namespaces XML Exibição XML XML HttpRequest Analisador de XML XML DOM XML XPath XML XSLT XML XQuery XML XLink Validador de XML XML DTD Esquema XML Servidor XML Exemplos XML Teste de XML Certificado XML

XML AJAX

Introdução AJAX AJAX XML Http Solicitação AJAX Resposta AJAX Arquivo XML AJAX PHP AJAX ASP AJAX Banco de dados AJAX Aplicativos AJAX Exemplos AJAX

XML DOM

Introdução ao DOM Nós DOM Acesso ao DOM Informações do nó DOM Lista de nós DOM Travessia do DOM Navegação DOM Valores de obtenção do DOM Nós de alteração do DOM Remoção de nós do DOM Substituir nós DOM DOM Criar nós DOM Adicionar nós Nós clones DOM Exemplos de DOM

Tutorial XPath

Introdução ao XPath Nós XPath Sintaxe XPath Eixos XPath Operadores XPath Exemplos de XPath

Tutorial XSLT

Introdução ao XSLT Idiomas XSL Transformação XSLT XSLT <modelo> XSLT <valor-de> XSLT <para-cada> XSLT <classificar> XSLT <if> XSLT <escolha> Aplicar XSLT XSLT no cliente XSLT no servidor XSLT Editar XML Exemplos de XSLT

Tutorial XQuery

Introdução ao XQuery Exemplo de XQuery XQuery FLWOR XQuery HTML Termos de XQuery Sintaxe XQuery Adicionar XQuery Seleção de XQuery Funções XQuery

XML DTD

Introdução DTD Blocos de construção de DTD Elementos DTD Atributos DTD Elementos DTD vs Attr Entidades DTD Exemplos de DTD

Esquema XSD

Introdução ao XSD XSD Como fazer XSD <esquema> Elementos XSD Atributos XSD Restrições XSD

Complexo XSD

Elementos XSD XSD vazio Apenas elementos XSD Somente texto XSD XSD Misto Indicadores XSD XSD <qualquer> XSD <qualquer atributo> Substituição XSD Exemplo de XSD

Dados XSD

Cadeia XSD Data XSD XSD Numérico XSD Misc Referência XSD

Serviços da Web

Serviços XML XML WSDL XML SOAP XML RDF XML RSS

Referências

Tipos de nós DOM Nó DOM Lista de nós DOM DOM NamedNodeMap Documento DOM Elemento DOM Atributo DOM Texto DOM DOM CDATA Comentário DOM DOM XMLHttpRequest Analisador de DOM Elementos XSLT Funções XSLT/XPath

Seleção e filtragem de XQuery


O documento de exemplo XML

Usaremos o documento "books.xml" nos exemplos abaixo (mesmo arquivo XML dos capítulos anteriores).

Visualize o arquivo "books.xml" em seu navegador .


Selecionando e Filtrando Elementos

Como vimos nos capítulos anteriores, estamos selecionando e filtrando elementos com uma expressão Path ou com uma expressão FLWOR.

Observe a seguinte expressão FLWOR:

for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
  • for - (opcional) vincula uma variável a cada item retornado pela expressão in
  • deixe - (opcional)
  • onde - (opcional) especifica um critério
  • order by - (opcional) especifica a ordem de classificação do resultado
  • return - especifica o que retornar no resultado

A cláusula para

A cláusula for vincula uma variável a cada item retornado pela expressão in. A cláusula for resulta em iteração. Pode haver várias cláusulas for na mesma expressão FLWOR.

Para fazer um loop de um número específico de vezes em uma cláusula for, você pode usar a palavra-chave to :

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

Resultado:

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

A palavra-chave at pode ser usada para contar a iteração:

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

Resultado:

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

Também é permitido com mais de uma expressão na cláusula for. Use vírgula para separar cada uma na expressão:

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

Resultado:

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


A cláusula let

A cláusula let permite atribuições de variáveis ​​e evita repetir a mesma expressão muitas vezes. A cláusula let não resulta em iteração.

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

Resultado:

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

A cláusula where

A cláusula where é usada para especificar um ou mais critérios para o resultado:

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

A ordem por cláusula

A cláusula order by é usada para especificar a ordem de classificação do resultado. Aqui queremos ordenar o resultado por categoria e título:

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

Resultado:

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

A cláusula de retorno

A cláusula return especifica o que deve ser retornado.

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

Resultado:

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