Unión de conjuntos de nodos

Hasta ahora se ha definido en cada expresión sólo un conjunto de nodos. No obstante, se dan con frecuencia aplicaciones en las que se deben unir varios conjuntos de nodos. En el ejemplo ofrecido a continuación se selecciónan todos los títulos dentro del estilo pop y todas las compañías discográficas.

//titulo[@estilo="pop"] | //discografica

Funciones XPath

Las funciones ofrecen operaciones avanzadas adicionales en la consulta de conjuntos de nodos, así como en el análisis de cadena de nodos de texto y valores de atributos. Las funciones XPath se pueden usar en expresiones XPath y en predicados, tal como se muestra en el siguiente ejemplo:

count(//cancion)
//disco[count(cancion)>10]

Las funciones pueden contener un argumento y devuelven siempre un valor. En el primer ejemplo la función "count" tiene como argumento un conjunto de nodos y devuelve como valor de salida un conjunto de nodos.

Ejemplos de funciones de conjuntos de nodos:

local-name(..) Devuelve el nombre del elemento padre como cadena.
//cancion[position()=5] (Sintaxis abreviada [5] ) Devuelve todas las canciones que ocupen la quinta posición en cada disco.
//cancion[position()=last()] Devuelve las canciones que ocupen la última posición en cada disco.

Ejemplos de funciones de cadena:

//disco[string-length(titulo) > 20 ] Selecciona todos los discos cuyo título tenga más de 20 caracteres.
//disco[starts-with(interprete,'M')] Selecciona todos los discos en los que el nombre del intérprete comience con la letra "M".

Un ejemplo de una función muy útil y usada con mucha frecuencia es "not()". Esta función niega una expresión booleana. A continuación se ofrece un ejemplo del empleo de esta función:

//disco[not(cancion)] Selecciona todos los discos que no tengan un elemento "cancion".
<< anterior  

© Derechos de autor 2007, dpunkt.verlag GmbH
El usuario podrá imprimir la versión online. La copia será exclusivamente para uso personal. Por lo demás el presente capítulo del libro publicado en lengua alemana "Professionelle XML-Verarbeitung mit Word" está sometido a los mismos términos y condiciones que la versión impresa. La presente obra está protegida en su totalidad por la ley de propiedad intelectual. Reservados todos los derechos, incluyendo los derechos de reproducción, traducción, microfilmación, así como el almacenamiento y procesamiento en sistemas electrónicos.

dpunkt.verlag GmbH, Ringstraße 19B, 69115 Heidelberg, téléfono +49 (0) 6221-14830, fax +49 (0) 6221-148399, hallo(at)dpunkt.de