El Ejemplo de documento XML
Vamos a utilizar el "books.xml" documento en los ejemplos siguientes (same XML file as in the previous chapters) .
Ver el "books.xml" archivo en su navegador .
La adición de elementos y atributos al resultado
Como hemos visto en un capítulo anterior, podemos incluir los elementos y atributos del documento de entrada ("books.xml) en el resultado:
for $x in doc("books.xml")/bookstore/book/title
order by $x
return $x
La expresión XQuery anteriormente incluirá tanto el elemento de título y la lang atributo en el resultado, como este:
<title lang="en">Everyday Italian</title>
<title lang="en">Harry Potter</title>
<title lang="en">Learning XML</title>
<title lang="en">XQuery Kick Start</title>
La expresión XQuery anterior devuelve los elementos del título de la misma manera como se describen en el documento de entrada.
Ahora queremos añadir nuestros propios elementos y atributos con el resultado!
Añadir elementos HTML y texto
Ahora, queremos añadir algunos elementos HTML en el resultado. Vamos a poner el resultado en una lista HTML - junto con un poco de texto:
<html>
<body>
<h1>Bookstore</h1>
<ul>
{
for $x in doc("books.xml")/bookstore/book
order by $x/title
return <li>{data($x/title)}. Category: {data($x/@category)}</li>
}
</ul>
</body>
</html>
La expresión XQuery anterior generará el siguiente resultado:
<html>
<body>
<h1>Bookstore</h1>
<ul>
<li>Everyday Italian. Category: COOKING</li>
<li>Harry Potter. Category: CHILDREN</li>
<li>Learning XML. Category: WEB</li>
<li>XQuery Kick Start. Category: WEB</li>
</ul>
</body>
</html>
Añadir atributos a elementos HTML
A continuación, queremos utilizar la category atributo como un atributo de clase en la lista de HTML:
<html>
<body>
<h1>Bookstore</h1>
<ul>
{
for $x in doc("books.xml")/bookstore/book
order by $x/title
return <li class="{data($x/@category)}">{data($x/title)}</li>
}
</ul>
</body>
</html>
La expresión XQuery anterior generará el siguiente resultado:
<html>
<body>
<h1>Bookstore</h1>
<ul>
<li class="COOKING">Everyday Italian</li>
<li class="CHILDREN">Harry Potter</li>
<li class="WEB">Learning XML</li>
<li class="WEB">XQuery Kick Start</li>
</ul>
</body>
</html>