Los últimos tutoriales de desarrollo web
 

XQuery Adición de elementos y atributos


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>