0% encontró este documento útil (0 votos)
16 vistas30 páginas

Introducción A XPATH - Ejemplos

Este documento introduce XPath, un lenguaje para navegar por documentos XML. Explica los diferentes tipos de nodos en XML y las relaciones entre ellos, y presenta la sintaxis básica de XPath incluyendo la selección de nodos, predicados y comodines.

Cargado por

luyet
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
16 vistas30 páginas

Introducción A XPATH - Ejemplos

Este documento introduce XPath, un lenguaje para navegar por documentos XML. Explica los diferentes tipos de nodos en XML y las relaciones entre ellos, y presenta la sintaxis básica de XPath incluyendo la selección de nodos, predicados y comodines.

Cargado por

luyet
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 30

Introducción a XPath

Jorge Castellanos Vega


Introducción
• XPath → Lenguaje que nos permite navegar a través de los
elementos y atributos que forman un documento XML
• Para ello utiliza expresiones basadas en las que se utilizan para
navegar por el árbol de directorios y ficheros de un sistema
operativo
• XPath Significa XML Path Language
• Contiene aproximadamente 200 funciones para ayudarnos en
las operaciones con los nodos:
• Funciones de cadena
• Funciones numéricas
• Funciones lógicas
• Funciones de fecha y hora
• …
Introducción
• Varias versiones
• XPath 1.0 → Noviembre 1999
• XPath 2.0 → Enero 2007
• XPath 3.0 → Abril 2014
• Xpath 3.1 → Marzo 2017
Nodos XPath
• En Xpath hay siete tipos de nodos:
• Elementos. Cualquier nodo que no es final
• Atributos. Atributos de los elementos.
• Texto. Texto contenido en las etiquetas
• Espacio de nombres
• Instrucciones de proceso
• Comentarios
• Nodos de documento
Nodos XPath
• Los nodos atributo y de texto no pueden tener descendientes
• El nodo atributo no tiene realmente la consideración de hijo,
es simplemente un elemento contenido en la etiqueta
• El texto de una etiqueta si se considera hijo
Nodos XPath

• 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

canción artista disco

Cantante=“Dave Discográfica= Rust in


Hangar 18 Megadeth año=“1990”
Mustaine” “capitol” peace
Sintaxis
• Una expresión XPath representa un recorrido en el árbol del
documento.
• Parecida a las expresiones de recorrer un árbol de directorios y
archivos de un disco
• Devuelve los nodos que se ajustan al recorrido indicado en la
expresión XPath
Sintaxis
• Seleccionando nodos

Expresión Acción

Nombre del nodo Selecciona todos los nodos con ese


nombre

/ Selecciona desde el nodo raíz

// Selecciona todos los descendientes del


nodo actual que coincidan con la
selección
. Selecciona el nodo actual

.. Selecciona el padre del nodo actual

@ 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

[n] Selecciona el elementos n-ésimo //canción[1]


El primer elemento se identifica por el 1

[last()] Selecciona el último elemento que es //canción[last()]


hijo de los nodos seleccionados
//canción[last()-1]
[position()] Permite seleccionar elementos a partir //canción[position()>2]
de la posición en la que se encuentren en
los resultados
[@atrib] Devuelve los nodos que tienen el //disco[@año]
atributo atrib o el valor del atributo si se
indica en la expresión //disco[@año=“1986”]
Sintaxis – Ejemplos predicados
• Expresión → //disco[@año="1990" or @año="1987"]

• 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

* Comodin para elementos


@* Comodín para atributos
node() Comodín para nodos de
cualquier tipo

• Expresión → //archivo/disco/@*
Sintaxis – Ejemplos comodines
• Expresión
• //archivo/* (en este caso equivale a //archivo/node() )
Referencias
• W3School - https://www.w3schools.com

También podría gustarte