Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
XPath
Jose Emilio Labra Gayo
Noviembre 2006
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Contenidos Antecedentes Sintaxis XPath Localizaciones en XPath Funciones predenidas en XPath Conversin de tipos o Booleanas Matemticas a Cadenas Conjuntos de nodos XPath 2.0
Jose Emilio Labra Gayo XPath
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Evolucin de XPath o
Desarrollado en 1999 como parte de XSL (eXtensible Stylesheet Language) La especicacin de XSL se dividi en: o o
XPath: Lenguaje para identicar nodos del rbol a XSLT: Lenguaje para transformar documentos XML XSL-FO: Lenguaje para denir objetos de formateo, pginas y a contenidos de pginas. a
XPath se independiz como una notacin para navegar por el o o rbol de un documento XML. a Se utiliza en: XQuery, XPointer, XML Schema, Schematron, etc. XPath 2.0 propuesto en 2005
Jose Emilio Labra Gayo XPath
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Lenguaje XPath
No tiene sintaxis XML Trabaja sobre el rbol del documento a La versin XPath 1.0 tiene 4 tipos de datos: o Booleanos Cadenas Nmeros u Conjuntos de nodos
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Tipos de nodos
Existen 7 tipos de nodos 1. Nodo ra z 2. Elementos 3. Atributos 4. Comentarios 5. Instrucciones de procesamiento 6. Texto 7. Espacios de nombres
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Expresiones XPath
Las expresiones XPath suelen utilizarse en valores de atributos XML
Se aplican las normas para codicar cadenas en XML
// t i t u l o | // v e r s o
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Ruta de localizacin. o
/ poemas /poema / v e r s o
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
El valor de una expresin puede ser: o Una cadena Un nmero u Un valor booleano Un conjunto de nodos En XPath 2.0 se substituyen conjuntos de nodos por secuencias en general
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Contexto de evaluacin o
Las expresiones se evalan en funcin de un contexto u o El contexto contiene la siguiente informacin: o
Nodo actual del contexto Posicin (entero) o Tamao (entero) n
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Ruta de localizacin o
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Pasos de localizacin o
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Ejes
child:: Hijos directos del nodo actual parent:: Padre del nodo actual descendant:: Descendientes ancestor:: Antecesores descendant-or-self:: Descendientes incluido el nodo actual ascestor-or-self:: Antecesores incluido el nodo actual following:: Los nodos siguientes (incluidos los descencientes) preceding:: Los precedentes (excluyendo los antecesores) following-sibling:: Hermanos siguientes preceding-sibling:: Hermanos precedentes
Jose Emilio Labra Gayo XPath
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Eje child
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Eje parent
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Eje ancestor
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Eje descendant
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Eje following-sibling
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Eje preceding-sibling
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Eje following
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Eje preceding
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Ejes (II)
attribute:: Atributos del nodo actual namespace:: Nodos de espacio de nombres self:: Localiza el nodo actual
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Prueba de nodo
nombre se verica para todos los nodos que tienen ese nombre * todos los nodos del tipo del eje node() cualquier nodo (sea del tipo que sea) text() nodos de tipo texto comment() nodos de tipo comentario processing-instruction() instrucciones de procesamiento
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Predicados
Un predicado es una funcin booleana que acta como un ltro o u Ejemplo: /descendant::verso[position()=2] Puede haber ms de un predicado y el orden es signicativo. a Ejemplo: /descendant::verso[position()=2][contains(.,de)] /descendant::verso[contains(.,de)][position()=2]
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Abreviaturas
child:: es el eje por defecto attribute:: equivale a @ . equivale a self::node() .. equivale a parent::node() // es /descendant-or-self::node()/ [position()=no ] equivale a [no ]
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Ejercicio
Pa Europeos ses En este chero se muestra informacin sobre pa de Europa en o ses formato XML Construir expresiones XPath para realizar las siguientes consultas Obtener el nombre del continente Obtener informacin sobre Espaa o n Obtener PIB de Espaa n Obtener pa con ms de 40 millones de habitantes ses a Obtener nombres de pa con PIB mayor que Espaa ses n Puede utilizarse el programa XPath Explorer
Jose Emilio Labra Gayo XPath
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Conversin de tipos o
string()
Convierte a cadena de texto Si es un nmero, se devuelve su representacin como cadena u o (para controlar el formato, es preferible, format-number Si es booleano, devuelve true false o Si es un conjunto de nodos, se aplica al primer nodo Si es un nodo, devuelve el valor de cadena de dicho nodo
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Conversin de tipos o
number()
Convierte a un nmero u Si es una cadena, trata de analizarla para convertirla a nmero u Si es un booleano, devuelve 1 si es true y 0 si es false Si es un conjunto de nodos, se convierte primero a cadena mediante string()
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Conversin de tipos o
boolean()
Convierte a un valor booleano Si es un nmero, es true si es distinto de cero u Si es un conjunto de nodos, es true si contiene algn nodo. u Si es una cadena, es true si no es la cadena vac a
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Booleanas
Funciones booleanas
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Matemticas a
Funciones matemticas a
XPath contiene los operadores matemticos habituales: +, - (debe a estar precedido de un espacio), *, div (la divisin no es con / ) y o mod Tambin incluye los operadores de comparacin: =, !=, <, >, <=, >= e o Otras funciones matemticas: sum(), floor(), ceiling(), a round()
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Cadenas
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Cadenas
substring(cad,pos,long?) devuelve la subcadena de cad a partir de la posicin pos y de longitud long o Ejemplo: substring(camina,3) = mina Ejemplo: substring(camina,3,2) = mi
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Cadenas
contains(cad1,cad2) devuelve true si cad1 contiene la cadena cad2 Ejemplo: contains(camina,ca) = true
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Cadenas
starts-with(cad1,cad2) devuelve true si cad1 comienza con la cadena cad2 Ejemplo: starts-with(camina,ca) = true NOTA: En XPath 1.0 no existe ends-with
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Cadenas
substring-before(cad1,cad2) devuelve el trozo de cadena de cad1 anterior a cad2 Ejemplo: substring-before(camina,mi) = ca substring-after(cad1,cad2) devuelve el trozo de cadena de cad1 posterior a cad2 Ejemplo: substring-after(camina,mi) = na
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Cadenas
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Cadenas
normalize-space(cad) devuelve el resultado de normalizar cad eliminando espacios en blanco redundantes Ejemplo:
n o r m a l i z e s p a c e ( un espacio l a r g o ) = un e s p a c i o l a r g o
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Cadenas
translate(cad1,cad2,cad3) devuelve el resultado de traducir todos los caracteres de cad1 que aparecen en cad2 por sus correspondientes en cad3 Ejemplo:
t r a n s l a t e ( camina , a e i o u , AEIOU ) = cAmInA
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Conjuntos de nodos
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Conjuntos de nodos
Ejercicio
Pa Europeos ses A partir de este chero Realizar las siguientes consultas Pa que empiezan por E ses Pa que contienen la letra e ses Pa que contienen la letra e (mayscula o minscula) ses u u Pa que acaben por la letra e ses PIB medio de pa europeos ses Pa cuyo PIB est por encima de la media ses a
Jose Emilio Labra Gayo XPath
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Conjuntos de nodos
document(URI) permite cargar un chero en tiempo de ejecucin o Permite extraer y combinar informacin de varios cheros o
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
XPath 2.0
XPath 2.0 fue propuesto en 2005. Novedades: Concepto de secuencias Sentencias if y for Cuanticadores Soporte para tipos primitivos de XML Schema Encaje de cadenas mediante expresiones regulares
Contenidos
Antecedentes
Sintaxis XPath
Localizaciones en XPath
XPath 2.0
Fin
Fin de la presentacin o