/: si está al principio de la expresión, indica el nodo raíz, si no, indica "hijo".
//: indica "descendiente" (hijos, hijos de hijos, etc.).
@atributo: selecciona el atributo.
..: selecciona el elemento padre.
|: permite elegir varios recorridos.
Nodos de comprobación
node(): selecciona todos los nodos (elementos y texto).
text(): selecciona el contenido del elemento (texto).
*: selecciona todos los elementos
@*: selecciona todos los atributos
Predicados
Los predicados se escriben entre corchetes
[@atributo]: selecciona los elementos que tienen el atributo.
[número]: si hay varios resultados selecciona uno de ellos por número de orden; last() selecciona el último de ellos
Los predicados permiten definir condiciones sobre los valores de los atributos. En las condiciones se pueden utilizar los operadores siguientes:
operador de unión (OR lógico): |
operadores lógicos: and, or, not()
operadores aritméticos: +, -, *, div, mod
operadores de comparación: =, !=, <, >, <=, >=
[condicion]: selecciona los nodos que cumplen la condición. La condición puede utilizar el valor de un atributo (utilizando @) o el texto que contiene el elemento (utilizando .)
Se pueden escribir varios predicados seguidos, teniendo en cuenta que cada uno restringe los resultados del anterior, como si estuvieran encadenados por la operación lógica and.