Consultas XQuery para Manipulação de XML
Consultas XQuery para Manipulação de XML
XQuery Nº1
Dado o seguinte documento XML, realize as seguintes consultas com XQuery (são eliminados
as tildes para evitar problemas de compatibilidade de caracteres):
2. Mostrar os livros cujo preço seja menor ou igual a 30. Primeiro incluindo a condição
na cláusula "onde" e depois no caminho do XPath.
3. Mostrar sólo el título de los libros cuyo precio sea menor o igual a 30.
4. Mostrar apenas o título sem atributos dos livros cujo preço seja menor ou igual a 30.
6. Mostrar los años de publicación, primero con "for" y luego con "let" para comprobar la
diferencia entre ellos. Etiquetar la salida con "publicacion".
7. Mostrar os livros ordenados primeiro por "categoria" e depois por "título" em uma só
consulta.
9. Mostrar los títulos de los libros y al final una etiqueta con el número total de libros.
11. Mostrar el título del libro, su precio y su precio con el IVA incluido, cada uno con su
propria etiqueta. Ordene-os por preço com IVA.
13. Mostrar cada um dos preços dos livros, e no final uma nova etiqueta com a
soma dos preços.
14. Mostrar o título e o número de autores que cada título possui em etiquetas
diferentes.
15. Mostrar na mesma etiqueta o título e entre parênteses o número de autores que
tem esse título.
para $libro em //livro
return <livro>{$livro/titulo/text()||"("||contar($livro/autores)||")"}</livro>
18. Mostrar los libros que tengan una "X" mayúscula o minúscula en el título.
19. Mostrar el título y el número de caracteres que tiene cada título, cada uno con su
própria etiqueta.
20. Mostrar todos los años en los que se ha publicado un libro eliminando los repetidos.
Etiquete-os com "ano".
let $anyo := //book/year
retornar <año>{valores-distintos($anyo)}</año>
21. Mostrar todos os autores eliminando os que se repetem e ordenados pelo número
de caracteres que tem cada autor.
<thead>
Livros
</thead>
<tr>
<th>Título</th>
<th>Autor</th>
<th>Año</th>
<th>Preço</th>
</tr>
<tbody>
retornar
<tr>
<td>{$livro/titulo/text()}</td>
<td>{$libro/autor/text()}</td>
<td>{$libro/ano/text()}</td>
<td>{$libro/price/text()}</td>
</tr>
</tbody>
</table>
2 EXERCÍCIO
Extraer la ciudad de los proveedores (no debe aparecer la etiqueta) que tengan un
estado maior de 15
for $ciudad in //proveedor[estado>15]/ciudad
retornar $ciudad/texto()
retornar $numpartes
Obter o nome dos projetos cuja cidade seja Paris e que recebam uma quantidade de
partes > 350.
return//projeto[@numprojeto=$suministrapartes]/nomeprojeto
Obter os nomes do projeto e os nomes das peças que estão na mesma cidade.
Obtener parejas de partes que tengan el mismo color (indicando el nombre de ambas
partes e a cor que compartilham).
Criar uma consulta XQuery que averigúe a média de partes fornecidas cujo cor seja
Vermelho
Averiguar la media de cantidades por proveedor usando los datos de la tabla suministra.
//projeto[@numprojeto=distinct-values(//fornece[cantidad>650]/numprojeto)]/nom
breprojeto