Filtrar conjuntos de nodos a través de predicados

Las expresiones XPath sirven para la selección de nodos en un árbol XML. Gracias al filtrado de expresiones a través de predicados, es posible usar expresiones XPath para seleccionar grupos de nodos que respondan a criterios más complejos, definiendo el acceso a los nodos de una manera mucho más precisa. Los predicados son expresiones que devuelven un resultado booleano (verdadero o falso), de manera que se puede filtrar de nuevo el resultado del nodo seleccionado a través de la expresión XPath. En caso de que un determinado nodo dentro de un conjunto de nodos se corresponda con el predicado de la expresión (que se cumpla la condición del mismo), éste pasará a formar parte del resultado. Por el contrario, si la condición no se cumple, se excluirá el nodo del resultado. De esta forma es posible afinar la busqueda dentro de un determinado conjunto inicial de nodos a través de las restricciones realizadas mediante predicados.

Filtrar conjuntos de nodos

La expresión //direccion selecciona todos los nodos elemento "direccion" del documento. En el segundo paso se reduce esta selección mediante un predicado. Sólo aquellos elementos que tengan un elemento hijo "localidad" y que el valor del mismo sea "Stuttgart" permanecerán en la selección. Los demás serán excluidos.

Es posible, además de la comparación de cadenas, restringir la selección mediante la comparación de otros valores en la expresión de un predicado. Por ejemplo:

Comparación de cadena direccion[nombre="Pepe López"]
Comparación numérica (mayor) disco[@calificacion > 3]
Comparación numérica (menor o igual) //cancion[@año <= 1990]
Combinación de "mayor" y "no igual a" disco[@calificacion < 2]/cancion[@año != 2000]

Además de la comparación de valores, es posible establecer la coexistencia de otros elementos como criterio para analizar un conjunto de nodos.

/listadedirecciones[direccion] Comprueba si existe el elemento hijo "dirección".
/listadedirecciones/direccion[@cat] Comprueba si existe un atributo "cat" dentro de "direccion".

Atención: Un predicado sólo comprueba si la condición es veradera o falsa. Se trata de una conversión implícita a un valor booleano.

<< anterior siguiente >>

© 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