Introducción A XPATH - Ejemplos
Introducción A XPATH - Ejemplos
• Nodos:
• Nodo raíz → <MiBibliotecaMP3>
• Nodo de elemento → <artista>
• Nodo de atributo → año=“1990”
• Valores atómicos:
• Nodos sin padre o sin hijos
• P.e: “1990”, Hangar 18
Nodos XPath
• Relaciones entre nodos
• Padre
• Cada elemento y atributo tiene un padre
• En el ejemplo, archivo es el padre de canción, artista, disco y
puntuación
• Hijo
• Cada nodo puede tener uno o más hijos
• En el ejemplo, archivo es hijo de MiBibliotecaMP3
• Hermanos
• Nodos que comparten padre
Nodos XPath
• Antepasados
• Todos los nodos de los que desciende un nodo
• Descendientes
• Todos los nodos que descienden de un nodo determinado
Nodos XPath
• Jerarquía
Tipos de nodos
/ raíz elemento
texto atributo
MiBibliotecaMP3
archivo puntuación 9
Expresión Acción
@ Selecciona atributos
Sintaxis - Ejemplos
• Supongamos el siguiente documento XML
Sintaxis - Ejemplos
• Expresión → /MiBibliotecaMP3
Resultado
Equivalente a → /
Sintaxis - Ejemplos
• Expresión → /MiBibliotecaMP3/archivo
Resultado
Sintaxis - Ejemplos
• Expresión → /MiBibliotecaMP3/archivo/canción
Resultado
• Expresión → /MiBibliotecaMP3/archivo/disco
Resultado
Sintaxis - Ejemplos
• Expresión → /MiBibliotecaMP3/archivo/disco/@discográfica
Resultado
• Expresión → /MiBibliotecaMP3/archivo/artista/@cantante
Resultado
Sintaxis - Ejemplos
• Expresión → /MiBibliotecaMP3/archivo/artista/..
Resultado
Sintaxis - Ejemplos
• Expresión → //archivo
Resultado
Sintaxis - Ejemplos
• Expresión → //canción
Resultado
• Expresión → //disco/../artista/@cantante
Resultado
Sintaxis - Ejemplos
• Expresión → //@discográfica
Resultado
• Expresión → //@discográfica/../../canción
Resultado
Sintaxis
• Es posible seleccionar varias rutas con el operador | (AND)
• Expresión → //canción | //artista/@cantante
Resultado
Sintaxis
• Predicados
• Se utilizan para seleccionar nodos que contengan un valor
determinado
• Siempre se expresan escritos entre corchetes
• Las expresiones utilizadas pueden contener operadores:
• Aritméticos (+, - ,*, /, div, mod)
• Comparación (=, !=, >,<,>=,<=)
• Lógicos (and, or, not)
• Es posible combinar varios predicados uno a continuación de
otro.
• Cada uno se aplica sobre el resultado del anterior
Sintaxis
• Predicados
Predicado Acción Ejemplo
• Expresión → //disco[not(@año="1990")]
• Expresión → //disco[not(@año="1990")][last()]
Sintaxis – Ejemplos predicados
• Expresión → //archivo[puntuacion=8]
• Expresión → //archivo[puntuacion=8]/artista
• Expresión → //archivo[puntuacion=8]/artista/@cantante
Sintaxis – Ejemplos predicados
• Expresión → //archivo[2]/disco/@discográfica
• Resultado: discográfica=“capitol”
• Expresión → //disco[position()>=3]/@discográfica
• Expresión
→ //disco[position()>=2 and position()<=last()]/@discográfica
Sintaxis – Texto del elemento
• Obteniendo el contenido de un elemento – text()
• Expresión → //artista/text()
• Expresión →//disco[@discográfica="Elektra"]/text()
• Resultado: Master of Puppets
• Expresión → //disco[@discográfica="Elektra"]/../artista/text()
• Resultado: Metallica
Sintaxis - Comodines
• Comodines
• Es posible utilizar comodines para seleccionar nodos de los que
no conocemos el nombre
• Expresión → //archivo/disco/@*
Sintaxis – Ejemplos comodines
• Expresión
• //archivo/* (en este caso equivale a //archivo/node() )
Referencias
• W3School - https://www.w3schools.com