1. 5. Listar año y título de los libros publicados por AddisonWesley después del año 1992 en un
archivo HTML, en el que aparezca al principio la frase “Libros publicados por AddisonWesley
después del año 1992” con formato H2.
xquery version "1.0";
<html>
<body>
<head> <title> Año y titulos </title> </head>
<body>
<h2> Libros publicados por addisonWesley despues del anyo 1992 </h2>
<ul>
{for $autor in doc ("xml.xml")/bib/libro
where $autor/editorial="Addison-Wesley" and where $autor/anyo > "1992"
return
<li>{data($autor/anyo)} . {data($autor/titulo)}</li>
</ul>
</body>
</html>
6. Listar año y título de los libros que tienen más de un autor en un archivo HTML, en el que
aparezca al principio la frase “Libros con más de un autor” con formato H2.
xquery version "1.0";
<html>
<body>
<head> <title> Año y titulos </title> </head>
<body>
<h2> Libros con más de un autor </h2>
<ul>
{for $autor in doc ("xml.xml")/bib/libro
where count($autor/autor)>1
return
<li>{data($autor/anyo)} . {data($autor/titulo)}</li>
</ul>
</body>
</html>
2. 7. Listar año y título de los libros que tienen no tienen autor en un archivo HTML, en el que
aparezca al principio la frase “Libros sin autor” con formato H2.
xquery version "1.0";
<html>
<body>
<head> <title> Año y titulos </title> </head>
<body>
<h2> Libros sin autor </h2>
<ul>
{for $autor in doc ("xml.xml")/bib/libro
where empty($autor/autor)
return
<li>{data($autor/anyo)} . {data($autor/titulo)}</li>
</ul>
</body>
</html>
8. Mostrar los apellidos de los autores que aparecen en el documento, sin repeticiones,
ordenados alfabéticamente en forma de lista HTML.
xquery version "1.0";
<html>
<body>
<head> <title> Año y titulos </title> </head>
<body>
<h2> Libros sin autor </h2>
<ul>
{for $b in distinct-values(doc ("xml.xml")/bib/libro/autor/apellido)
order by $b
return {data($b)}
}
</ul>
</body>
</html>
3. 9. Generar un documento XML bien formado en el que, por cada libro, aparezca agrupado en
un elemento <result> su titulo y autores
xquery version "1.0";
<bib>
{for $b in doc ("xml.xml")/bib/libro
return <result> {($b/titulo)} . {($b/autor)} </result>
</bib>
10. Generar un documento XML bien formado en el que, por cada libro, aparezca su título y el
número de autores, agrupados en un elemento <libro>
xquery version "1.0";
<bib>
{for $b in doc ("xml.xml")/bib/libro
return <libro> {data($b/titulo)} . <num_autores>{count($b/autor)}</numero_autores>
</libro>
</bib>
4. 11. Generar un documento html con un encabezado que diga “Listado de libros” seguido de
una tabla de 3 columnas, en la que se muestre el titulo, editorial y precio de cada libro. La
tabla deberá tener bordes y la primera fila tendrá un formato especial con los nombres de las
columnas. Las columnas de título y editorial irán alineadas a la izquierda, y el precio a la
derecha.
xquery version "1.0";
<html>
<body>
<head> <title> libros </title> </head>
<body>
<h1> listado de libros </h1>
<table border=1>
<tr>
<th> titulo> </th>
<th> editorial </th>
<th> precio </th>
</tr>
{for $a in doc ("xml.xml")/bib/libro
return
<tr>
<td align="left"> {data($a/titulo)}</td>
<td align="left"> {data($a/editorial)}</td>
<td align="right"> {data($a/precio}</td>
</tr>
}
</table>
</body>
</html>
5. 12. Generar el siguiente documento html con la información de los libros del autor Stevens. El
valor precio total es un campo calculado utilizando una consulta con una cláusula let
xquery version "1.0";
<html>
<body>
<head> <title> libros </title> </head>
<body>
<h1> libros de stevens </h1>
<table border=1>
<tr>
<th> titulo> </th>
<th> precio </th>
</tr>
{for $b in doc("xml.xml")/bib/libro
where $b/autor/apellido="Stevens"
return
<tr>
<td align="left"> {data($b/titulo)}</td>
<td align="right"> {data($b/precio}</td>
</tr>
}
{let $a := doc("xml.xml")/bib/libro [ autor/apellido="Stevens"]
return
<tr>
<td> <b> Precio total </b> </td>
<td> {sum($a[2]/precio)} </td>
</tr>
}
</table>
</body>
</html>