expresiones XPath

Los documentos XML se organizan como un árbol, que consta de un nodo raíz y nodos secundarios descendientes (hijos). La biblioteca de funciones se basa en argumentos XPath para examinar este árbol y localizar nodos XML individuales.

El resultado de una expresión XPath puede ser un nodo o un conjunto de nodos de elemento, texto o atributo. Por ejemplo, la expresión XPath /ABC/DEF selecciona todos los nodos secundarios DEF en el nodo raíz ABC del documento XML. En la tabla siguiente se resumen las funciones más habituales de la sintaxis de XPath.

Tabla 1. Descripción general de la sintaxis de XPath
Sintaxis de XPath Uso
/ La barra inclinada al principio de una expresión XPath indica la raíz del árbol. Una barra inclinada al principio especifique una vía de acceso absoluta. Por ejemplo, /ABC especifica el elemento secundario del nodo raíz denominado ABC. Si se omite la barra inclinada inicial, la vía de acceso es relativa y el contexto de dicha vía de acceso relativa adoptará de forma predeterminada el elemento raíz. Utilice las subsiguientes barras inclinadas en una expresión XPath como separadores de vías de acceso para identificar los nodos secundarios de un nodo. Por ejemplo, /ABC/DEF especifica el elemento DEF, que es un nodo secundario del elemento ABC, que es un secundario del elemento raíz.
// Dos barras diagonales especifican todos los descendientes del nodo actual. Por ejemplo, ' ABC//DEF ' coincide con cualquier elemento DEF bajo el elemento ABC.
* El asterisco es el carácter comodín que especifica una coincidencia con cualquier nodo secundario (hijo). Por ejemplo, /ABC/*/DEF coincide con cualquier elemento DEF que sea descendiente de segundo nivel del elemento ABC.
[] Los corchetes especifican expresiones de predicado, como los operadores binarios OR, AND y NOT. Por ejemplo, /RESIDENTS [AGE=65 and NAME="Jane Doe"]/ADDRESS selecciona el elemento dirección de todos los residentes cuya edad sea 65 y se llamen Jane Doe. Los corchetes también denotan un índice en una lista. Por ejemplo, /POSTOFFICE/BOX[2] identifica el segundo elemento del número de buzón del elemento raíz POSTOFFICE.
nodename La variable nodeName selecciona todos los nodos secundarios del nodo indicado. A continuación, se muestran algunos ejemplos:
  • bookstore selecciona todos los nodos secundarios del elemento bookstore.
  • /bookstore seleccione el elemento raíz bookstore. Si la vía de acceso empieza por una barra inclinada (/), representa siempre una vía de acceso absoluta a un elemento.
  • bookstore/book selecciona todos los elementos secundarios book de bookstore.
  • book selecciona todos los elementos book del documento.
  • bookstore//book selecciona todos los elementos book que son descendientes de bookstore, independientemente de dónde se encuentren dentro del elemento bookstore.
. Un solo punto selecciona el nodo actual.
.. Dos puntos seleccionan el padre del nodo actual.
@ La arroba selecciona atributos. Por ejemplo, //@lang selecciona todos los atributos que se denominan lang.
func_
'
name
XPath admite un conjunto de funciones integradas como, por ejemplo, substring(), round() y not(). Además, si utiliza espacios de nombres, puede hacer que las funciones definidas por el usuario estén disponibles.