Sei sulla pagina 1di 16

XPath

Ing. Julio E. Balarezo L.


¿Qué es XPath?
• XPath es un lenguaje para encontrar
información en un documento XML.
• XPath es usado para navegar a través de
elementos y atributos en un documento XML.
Expresiones Path en XPath
• XPath usa expresiones de path para
seleccionar nodos o grupos de nodos en un
documento XML.
• Estas expresiones de path se ven mucho mejor
que las expresiones que se ven cuando se
trabajan con un sistema de archivos
tradicional.
Funciones standard en XPath
• XPath incluye más de 100 funciones
desarrolladas.
• Son funciones para valores de cadenas de
caracteres, valores numéricos, comparación
entre fecha y hora, manipulación de nodos,
manipulación de secuencias, valores
Booleanos, y más.
Nodos
• En XPath,hay siete clases de nodos:
– elemento,
– atributo,
– texto,
– namespace,
– instrucción de procesamiento,
– comentario, y
– nodo de documento (root o raíz).
Nodos (2)
Mire el siguiente documento XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<tiendalibros>
<libro>
<titulo lang="en">Harry Potter</titulo>
<autor>J K. Rowling</autor>
<anio>2005</anio>
<precio>29.99</precio>
</libro>
</tiendalibros>

Ejemplo de nodos en el documento XML anterior:


<tiendalibros> (nodo documento)
<autor>J K. Rowling</autor> (nodo elemento)
lang="en" (nodo atributo)
Nodos (3)
• Valores Atómicos
Valores Atómicos son nodos sin hijos ni
padres.
Ejemplo de valores atómicos:
J K. Rowling
"en”
• Items
Los Items son valores atómicos o nodos.
Relaciones entre nodos
Padre
• Cada elemento y atributo tiene al menos un
padre.
En el siguiente ejemplo, el elemento libro es padre de
titulo, autor, año y precio:
<libro>
<title>Harry Potter</title>
<autor>J K. Rowling</autor>
<anio>2005</anio>
<precio>29.99</precio>
</libro>
Relaciones entre nodos (2)
Hijo
• Los nodos elementos pueden tener cero, uno o
más hijos. En el siguiente ejemplo, el título, autor,
año y precio son hijos del elemento libro:
<libro>
<title>Harry Potter</title>
<autor>J K. Rowling</autor>
<anio>2005</anio>
<precio>29.99</precio>
</libro>
Relaciones entre nodos (3)
Hermano
• Nodos que tienen el mismo padre.
• En el siguiente ejemplo, los elementos título,
autor, año y precio son todos hermanos:
<libro>
<title>Harry Potter</title>
<autor>J K. Rowling</autor> <anio>2005</anio>
<precio>29.99</precio>
</libro>
Relaciones entre nodos (4)
Ancestros
• Un padre del nodo, y padres del elemento padre, etc.
en el siguiente ejemplo, los antecessores del elemento
libro son el elemento libre y el elemento tiendalibro:
<tiendalibros>
<libro>
<title>Harry Potter</title>
<autor>J K. Rowling</autor>
<anio>2005</anio>
<precio>29.99</precio>
</libro>
</tiendalibros>
Relaciones entre nodos (5)
Descendientes
• Un nodo hijo, hijos de los hijos, etc. En el siguiente
ejemplo, los descendientes del elemento tiendalibros
son los elementos libro, titulo, autor, año y precio:
<tiendalibros>
<libro>
<title>Harry Potter</title>
<autor>J K. Rowling</autor>
<anio>2005</anio>
<precio>29.99</precio>
</libro>
</tiendalibros>
Sintaxis Xpath
• XPath usa expresiones path para seleccionar nodos o conjuntos de
nodos en un documento XML. El nodo es seleccionado siguiendo un
path o pasos.
El documento XML de ejemplo:
• Usaremos el siguiente documento en los ejemplos siguientes:
<?xml version="1.0" encoding="ISO-8859-1"?>
<tiendalibros>
<libro>
<titulo lang="eng">Harry Potter</titulo>
<precio>29.99</precio>
</libro>
<libro>
<titulo lang="eng">Learning XML</titulo>
<precio>39.95</precio>
</libro>
</tiendalibros>
Sintaxis Xpath (2)
Selecting Nodes
• XPath usa expresiones path para seleccionar nodos en un documento
XML. El nodo es seleccionado siguiendo un path o pasos. Las expresiones
path mas usadas estan listadas a continuación:

Expresión Descripción
nombrenodo Selecciona todos los nodos hijos de nodo nombrado
/ Selecciona desde el nodo raiz
// Selecciona nodes en el documento desde el nodo
actual que es igual a la selección no importa donde
esté.
. Selecciona el nodo actual
.. Selecciona el padre del nodo actual
@ Selecciona atrbutos
Sintaxis Xpath (3)
Ejemplos:
Expresion Path Result
tiendalibros Selecciona todos los nodos hijos del elemento tiendalibros

/tiendalibros Selecciona la raiz del elemento tiendalibros

Nota: Si el path inicia con un slash ( / ) esto siempre representará


un path absoluto a un elemento
tiendalibros/libro Selecciona todos los elementos que sean hijos de tiendalibros

//libro Selecciona todos los elementos libro no importa en que parte del
documento estén.
tiendalibros//libro Selecciona todos los elementos libro que son descencientes del
elemento tiendalibros, no importa en que parte bajo el elemento
tiendalibros
//@lang Selecciona todos los atributos que son llamados langattributes that
are named lang
Sintaxis Xpath (4)
Predicados
• Los predicados son usados para encontrar un nodo específico o un nodo que contenga un valor
específico
• Los predicados están siempre entre corchetes.
Examples
• En la tabla siguiente se muestran algunas expresiones path con predicados y el resultado de las
expresiones:
Path Expression Result
/tiendalibros/libro[1] Selecciona el primer elemento libro que es hijo del elemento tiendalibros.

Note: IE5 y posteriores han implementado que [0] debería ser el primer
nodo, pero de acuerdo con el standard w3c debería haber sido [1]
/tiendalibros/libro[last()] Selecciona el ultimo elemento libro que es hijo del elemento tiendalibros
/tiendalibros/libro[last()-1] Selecciona el ultimo elemento libro que es hijo del elemento tiendalibros
/tiendalibros/libro[position()<3] Selecciona el primer elemento libro que es hijo del elelemento tiendalibros
//titulo[@lang] Selecciona todos los elementos titulo que tienen un atributo llamado lang
//titulo[@lang='eng'] Selecciona todos los elementos titulo que tienen un atributo llamado lang
con el valor de 'eng'
/tiendalibros/libro[precio>35.00] Selecciona todos los elementos libros del elemento tiendalibros que tienen
un elemento precio con el valor mayor a 35.00
/tiendalibros/libro[precio>35.00]/titulo Selecciona todos los elementos titulo del elemento libro del elemento
tiendalibros que tiene un precio con el valor mayor a 35.00

Potrebbero piacerti anche