Xpath+xquery
XPath es un lenguaje para la búsqueda de información en un documento XML.
¿Qué es XPath?
* XPath es una sintaxis para definir partes de un documento XML
* XPath utiliza expresiones de la ruta de acceso para navegar en documentos XML
* XPath contiene una biblioteca de funciones estándar
* XPath es un elemento importante en XSLT
* XPath es una recomendación del W3CDescriptores de caminos
* Sirven para seleccionar elementos que se encuentran en cierto camino en el árbol.
* Los descriptores se forman simplemente nombrando tags separados por /.
* Si el descriptor comienza con / se supone que es un camino desde la raíz.
* Si el descriptor comienza con // se supone que el camino descrito puede comenzar en cualquier parte en el árbol.
*Implícitamente se supone que todos los descriptores se refieren a caminos que avanzan en la profundidad del árbol.
Ejemplos
* El descriptor /Empresa/departamento/empleado selecciona a todos los tags que corresponden a empleados de la empresa.
* El descriptor /Empresa/departamento/empleado/nombre selecciona la lista de todos los tags nombre de todos los empleados en la empresa.
* Eldescriptor //nombre selecciona la lista de todos los tags nombre en cualquier lugar del documento.
* En este caso se obtienen los nombres de los departamentos y de los empleados.
* El descriptor //empleado/nombre selecciona la lista de todos los tag nombre que son hijos de un tag empleado en el árbol, partiendo desde cualquier punto.
* En este caso obtenemos el mismo resultado queen el primer ejemplo.
Operador * : Ejemplo
* El * se usa para nombrar a cualquier tag, se usa como comodín.
* El descriptor /*/*/nombre selecciona la lista de todos los tag nombre que se encuentran a dos niveles de profundidad desde la raíz.
* En este caso se obtienen solo los nombres de los departamentos.
Atributos
* Para referirse a los atributos de los elementosse usa @ antes del nombre, por ejemplo @telefono.
* En un descriptor de camino los atributos se nombran como si fueran tag hijos pero anteponiendo @.
Ejemplo
* El descriptor \Empleado\departamento\@telefono selecciona los telefonos de los departamentos de la empresa.
Condiciones de Selección
* En un descriptor una condición entre paréntesis cuadrados [...] puede seguir alnombre de un tag o atributo (sin usar /).
* En este caso se seleccionan los elementos que siguen el camino del descriptor pero que además cumplen la condición especificada.
* En las condiciones se pueden usar comparadores (<, >, <=, >=, =, !=) y conectivos lógicos (or, and).
Ejemplos
* La expresión /Empresa/departamento/empleado[@salario > 500000] selecciona loselementos empleados tales que su atributo salario es mayor a 500000.
* La expresión //departamento[codigo=B02]/empleado/nombre selecciona los nombre de los empleados del departamento con código B02.
Predicados
* Las condiciones de selección son un tipo especial de predicados que se usan para dirigir la búsqueda por el árbol.
* En general un predicado, que también se escribe entreparéntesis cuadrados luego de un elemento (o atributo), puede ser una expresión general para dirigir la búsqueda.
* Se pueden usar funciones construidas (last, count, etc.) o expresiones matemáticas (usando +, -, *, div, etc.)
Ejemplos
* La expresión \Empresa\departamento[1]\empleado\rut entrega el rut de los empleados del primer elemento departamento en el documento.
* Por ejemplo laexpresión \Empresa\departamento\empleado[last()]\rut entregará el rut del último elemento empleado de cada departamento en el árbol, y \Empresa\departamento\empleado[last()-1]\rut el rut del penúltimo elemento empleado en el árbol.
* La función count se usa para contar elementos.
* Por ejemplo la expresión
\Empresa\departamento[count(empleado)>1]\codigo entrega el elemento...
Regístrate para leer el documento completo.