Para seleccionar elementos de un árbol indicamos:
<titulo>El Quijote</titulo>
<titulo
>
Ejemplo:
/catalogo/producto/calidad/@valor
Es una expresión booleana que añade un nivel de verificación al paso de localización. A la hora de hacer la selección podemos incluir filtros que se escriben entre corchetes. Para esto podemos utilizar operadores como (, ), =, <, >, >=, <=, !=
Ejemplo: /catalogo/producto[precio >= 90] (para seleccionar el elemento producto cuyo precio sea mayor o igual a 90)
Ejemplo: /catalogo/producto/calidad[@valor>5] (selecciona los atributos valor que tengan asignado un número mayor que 5)
También se puede incluir en un predicado:
Para indicar el nacimiento que es un atributo del elemento fecha, tenemos que poner la expresión:
/persona/fecha[@nacimiento=”XXXX”]/../nombre
Hay que indicar los dos puntos porque una vez que hemos llegado al nodo fecha y puesto el filtro para el nacimiento hay que volver al nodo padre para llegar al nombre
Ejemplo: (obtener los titulos de los libros con más de 600 páginas)
/catalogo/libro[paginas > 600]/titulo
Si hay varios resultados se puede indicar el libro con:
//libro[1] – escoge el primer libro
//libro[last()] - escoge el ultimo
Si se necesita varios predicados se pueden escribir seguidos, pero teniendo en cuenta de que cada uno restringe los resultados del anterior como si estarían encadenados con el operador AND
//libro[editorial = “Multimedia][paginas = 500]/titulo/text()
Para indicar los elementos que no tienen algunos atributos se utiliza not(@atributo)
Ejemplo: //libro[not(@fechaPublicación)]
También podemos sacar información de dos nodos distintos, usando dos condiciones, utilizando el operador lógico or |
Ejemplo: //pelicula[publico =”Gladiator”]/nombre | //pelicula[publica = “Forest Gump”]/nombre