Comenzando con xquery

Suma sobre valores

Dado el siguiente documento XML:

<?xml version="1.0" encoding="UTF-8"?>
<values>
  <value>1</value>
  <value>3</value>
  <value>5</value>
</values>

Podemos producir un documento XML que describa la suma de los valores con el siguiente XQuery:

<total>{sum(/values/value)}</total>

Lo que dará como resultado el siguiente documento:

<?xml version="1.0" encoding="UTF-8"?>
<total>9</total>

Instalación o configuración

Instrucciones detalladas sobre cómo configurar o instalar xquery.

Escribiendo XML estático

Los datos XML se pueden escribir tal cual en XQuery y se encontrarán en la salida. El siguiente código puede considerarse XQuery válido:

<application>
  <id>MyApp</id>
  <name>My Application</name>
  <version>1.0</version>
</application>

Tenga en cuenta que su código XQuery debe producir un documento XML válido y, como tal, está restringido a generar todos sus datos en una sola etiqueta raíz.

Además, de forma predeterminada, la mayoría de las implementaciones de XQuery agregarán el encabezado XML si lo omite. Por ejemplo, el código anterior produciría este resultado:

<?xml version="1.0" encoding="UTF-8"?>
<application>
  <id>MyApp</id>
  <name>My Application</name>
  <version>1.0</version>
</application>

Extracción de datos XML

Para abordar los datos de una entrada XML, XQuery usa XPath. Facilita el filtrado de datos y su reestructuración.

Dada la siguiente entrada XML

<?xml version="1.0" encoding="UTF-8"?>
<applications>
  <application>
    <id>MyApp</id>
    <name>My Application</name>
    <version>1.0</version>
  </application>
  <application>
    <id>SomeApp</id>
    <name>Some Application</name>
    <version>4.2</version>
  </application>
  <application>
    <id>TheOtherApp</id>
    <name>That one</name>
    <version>13.37</version>
  </application>
</applications>    

El siguiente código XQuery extraerá la aplicación cuyo id es MyApp:

/applications/application[id='MyApp']

Produce el siguiente documento XML:

<?xml version="1.0" encoding="UTF-8"?>
<application>
  <id>MyApp</id>
  <name>My Application</name>
  <version>1.0</version>
</application>

Y este código extraerá las aplicaciones cuya versión sea inferior a 10, mostrándolas en una etiqueta <oldApplications>:

    <oldApplications>{/applications/application[version < 10]}</oldApplications> 

Produce el siguiente documento XML:

<?xml version="1.0" encoding="UTF-8"?>
<oldApplications>
  <application>
    <id>MyApp</id>
    <name>My Application</name>
    <version>1.0</version>
  </application>
  <application>
    <id>SomeApp</id>
    <name>Some Application</name>
    <version>4.2</version>
  </application>
</oldApplications>