XQuery Agregar elementosyAtributos


Documento de ejemplo XML

Continuaremos usando este documento "books.xml" en los siguientes ejemplos (el mismo archivo XML utilizado en los capítulos anteriores).

。


Agregar elementos y atributos al resultado

Como vimos en la sección anterior, podemos hacer referencia a elementos y atributos del archivo de entrada en el resultado:

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

La expresión XQuery anterior hará referencia al elemento title y al atributo lang en el resultado, de la siguiente manera:

Everyday Italian
Harry Potter
Learning XML
XQuery Kick Start

La expresión XQuery anterior devuelve los elementos title de la misma manera en que están descritos en el documento de entrada.

¡Ahora vamos a agregar nuestros propios elementos y atributos al resultado!

Agregar elementos y texto HTML

Ahora vamos a agregar elementos HTML al resultado. Pondremos el resultado en una lista HTML:

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

Agregar atributos a los elementos HTML

A continuación, vamos a usar el atributo category como el atributo class en la lista HTML:

<html>
<body>

<h1>Bookstore</h1>

<ul>
{
for $x in doc("books.xml")/bookstore/book
order by $x/title
return
  • {data($x/title)}

  • }
    </ul>

    </body>
    </html>

    La expresión XQuery anterior puede generar el siguiente resultado:

    <html>
    <body>
    <h1>Bookstore</h1>

    <ul>
  • Everyday Italian

  • Harry Potter

  • Learning XML

  • XQuery Kick Start

  • </ul>

    </body>
    </html>
    Otras extensiones