Saltar al contenido principal

XML Path Language

Enlace de utilidad
Ayudita

Para hacer uso de este lenguaje en la consola de un navegador, es necesario hacerlo dentro de $x('/html').

Xpath es un lenguaje que nos permite construir expresiones las cuales recorren y procesan un documento XML.

Son como las expresiones regulares de los nodos en la web.

Selección de nodos

Se utilizan expresiones de ruta para seleccionar nodos en un documento XML. El nodo es seleccionado siguiendo un camino o pasos.

ExpresiónDescripción
/Selecciona el nodo raíz o también es un salto entre nodos
//Selecciona todos los nodos de la etiqueta seleccionada
.Selecciona el nodo actual
..Selecciona el padre del nodo actual
@Selecciona el atributo
text()Selecciona el texto del nodo

Predicados

Son usados para encontrar un nodo específico o un nodo que contiene un valor específico. Siempre están entre medio de los corchetes "[ ]". Desde aquí también utilizaremos los típicos operadores:

  • '+', '-', '*' y 'div'
  • '=', '!=' o 'not()', '<' y '>'
  • 'and', 'or' y 'mod'
ExpresiónDescripción
[1]..[n]Selecciona el primer o n elemento hijo
[last()]Selecciona el último hijo
[last()-1] .. -nSelecciona el nodo anterior al último o n
[position()<3] .. nSelecciona los primeros 2 nodos o n según corresponda
[@lang]Selecciona todos los elementos con un atributo lang
[@lang='en']Selecciona todos los elementos con un atributo lang y el valor 'en'
[price > 35.00]Selecciona todos los elementos con un precio mayor a 35.00
[price > 35.00]/titleSelecciona los títulos de todos los elementos con un precio mayor a 35.00

Wildcards

Nos sirven para seleccionar nodos desconocidos.

ExpresiónDescripción
*Selecciona todos los nodos
@*Selecciona todos los atributos de nodos
node()Selecciona todos los nodos de cualquier tipo

Nos ayuda a buscar cadenas de texto específicas dentro de los nodos.

ExpresiónDescripción
starts-with(nodo,"Texto")Busca textos que inicien con el texto indicado
end-with(nodo,"Texto")Busca textos que finalicen con el texto indicado
contains(nodo,"Texto")Busca coincidencias en el texto
matches(nodo, expresión regular)Nos permite filtrar por expresiones regulares

XPath Axes

ExpresiónDescripción
selfDevuelve el nodo en el que estamos parados
parentDevuelve el nodo padre del actual
ancestorDevuelve el padre y los abuelos del nodo actual
ancestor-or-selfDevuelve la unión de ancestor y self
childDevuelve los hijos directos del nodo actual
descendantDevuelve los hijos y nietos del nodo actual
descendant-or-selfDevuelve la unión entre descendant y self