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ón | Descripció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ón | Descripción |
---|---|
[1]..[n] | Selecciona el primer o n elemento hijo |
[last()] | Selecciona el último hijo |
[last()-1] .. -n | Selecciona el nodo anterior al último o n |
[position()<3] .. n | Selecciona 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]/title | Selecciona los títulos de todos los elementos con un precio mayor a 35.00 |
Wildcards
Nos sirven para seleccionar nodos desconocidos.
Expresión | Descripción |
---|---|
* | Selecciona todos los nodos |
@* | Selecciona todos los atributos de nodos |
node() | Selecciona todos los nodos de cualquier tipo |
In-text Search
Nos ayuda a buscar cadenas de texto específicas dentro de los nodos.
Expresión | Descripció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ón | Descripción |
---|---|
self | Devuelve el nodo en el que estamos parados |
parent | Devuelve el nodo padre del actual |
ancestor | Devuelve el padre y los abuelos del nodo actual |
ancestor-or-self | Devuelve la unión de ancestor y self |
child | Devuelve los hijos directos del nodo actual |
descendant | Devuelve los hijos y nietos del nodo actual |
descendant-or-self | Devuelve la unión entre descendant y self |