La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

XPath Ing. Hernández López Augusto. Introducción  Es un lenguaje para encontrar información en un documento XML. Es utilizado para navegar a través de.

Presentaciones similares


Presentación del tema: "XPath Ing. Hernández López Augusto. Introducción  Es un lenguaje para encontrar información en un documento XML. Es utilizado para navegar a través de."— Transcripción de la presentación:

1 XPath Ing. Hernández López Augusto

2 Introducción  Es un lenguaje para encontrar información en un documento XML. Es utilizado para navegar a través de elementos y atributos.  Es el mayor componente en el estándar XSLT – XQuery y XPointer utilizan las expresiones XPath.  Se convirtió en un estándar recomendado por la W3C en 1999

3 ¿Qué es XPath?  Es una sintaxis para definir partes de un documento XML  Utiliza expresiones de trayectorias para navegar en documentos XML  Contiene una biblioteca de funciones estándar  Es el mayor componente en XSLT  Es un estándar de la W3C

4 Uso de XPath  Con DOM/SAX es posible navegar sobre el documento conociendo su estructura exacta, se debe especificar si busca en el padre, hermanos, hijos, etc.  Mediante XPath es posible localizar nodos en el documento XML.  Esta diseñado para procesa árboles y facilitar la referencia de los datos en la jerarquía.  Se basa en expresiones similares a las expresiones regulares, diseñadas para la estructura jerárquica de XML.

5 Expresiones XPath  Se utilizan expresiones para seleccionar nodos o conjuntos de nodos.  Son expresiones similares a las utilizadas en el sistema de archivos tradicional.

6 Funciones Estándar XPath  Incluye cerca de 100 funciones.  Existen funciones para valores de cadenas, numéricas, fechas, comparación de hora, nodos, manipulación del QName, secuencias, valores booleanos, etc.

7 Terminología  Nodos: Existen diferentes tipos: elemento, atributo, texto, instrucción de procesamiento, comentario y documento (raíz). Se maneja como un árbol de nodos (nodo documento) J K. Rowling (nodo elemento) lenguaje="es" (nodo atributo)

8 Terminología  Valores Atómicos: Son aquellos nodos que no tienen hijos (hojas) o padres (atributos).  Artículo: Son valores atómicos o nodos.

9 Relaciones entre Nodos  Padre: Cada elemento y atributo tiene un padre.  Hijo: Los nodos elemento pueden tener cero, uno o más hijos.  Hermanos, Vecinos: Nodos que tienen el mismo padre.  Ancestros: Un nodo padre, su padre, el padre de su padre, etc.  Descendientes: Un nodo hijo, los hijos de sus hijos, etc.

10 Sintaxis XPath  XPath utiliza expresiones de trayectorias para seleccionado nodos o conjuntos de nodos en un documento XML. EL nodo es seleccionado mediante una trayectoria o pasos.  Una trayectoria esta compuesta de uno o más pasos  Cada paso esta compuesto de un eje, un nodo y opcionalmente predicados. Una pareja de dos puntos (::) separa el eje del nodo y cada predicado se pone entre paréntesis cuadrados []  Se pueden especificar trayectorias:  Absolutas, si parte de la raíz del documento. /  Relativas, si parte del nodo donde se encuentra.

11 Selección de Nodos  Los nodos se seleccionan con las siguientes trayectorias o pasos, estas son las expresiones más usuales: nombrenodoSelecciona todos los nodos hijos del nodo nombrado /Selecciona desde el nodo raíz //Selecciona nodos en el documento desde el nodo actual que corresponda a la selección no importando donde esten.Selecciona el nodo actual..Selecciona el padre del nodo actual @Selecciona los atributos

12 Selección de Nodos: Ejemplo  La tabla siguiente muestra algunas expresiones y los resultados de las mismas: bookstoreSelecciona todos los nodos hijos del elemento nodo bookstore /bookstoreSelecciona el elemento raíz bookstore bookstore/bookSelecciona todos los elementos book que son hijos de bookstore //bookSelecciona todos los elementos book no importando donde estén. bookstore//bookSelecciona todos los elementos book descendientes de bookstore no importando donde estén debajo de este. //@langSelecciona todos los atributos llamados lang

13 Predicados  Predicados son utilizados para encontrar nodos específicos o un nodo que contiene un valor especifico. Están embebidos en paréntesis cuadrados []. bookstore/book[1]Selecciona el primer elemento book bookstore/book[last()]Selecciona el ultimo elemento book bookstore/book[position()<3]Selecciona dos elementos bookstore/book[price>35.00]Selecciona todos los libros con precio mayor a 35.0 //title[@lang=‘eng’]Selecciona todos los elementos que tienen atributo lang con valor ‘eng’

14 Nodos desconocidos *Cualquier nodo elemento @*Cualquier nodo atributo node()Cualquier nodo /bookstore/*Todos los nodos hijos de bookstore //*Todos los nodos del documento //title[@*]Todos los atributos del nodo title

15 Ejes  Un eje define un conjunto de nodos relativos al nodo actual  Ancestro, ancestro o el mismo, hijo, descendiente, descendiente o el mismo, siguientes, hermanos siguientes, padre, precedentes, hermanos precedentes, el mismo, atributos, espacio de nombres  Se antecede el eje con ::  P.ej  attribute::lang, child::*

16 Operadores OperadorDescripciónEjemploValor de Retorno |Calcula dos conjuntos de nodos//book | //cdRegresa un conjunto de nodos con book y cd +Suma6 + 410 -Resta6 - 42 *Multiplicación6 * 424 divDivisión8 div 42 =Igualdadprice=9.80true si price es 9.80 !=Desigualdadprice!=9.80false si price es 9.80 <Menor queprice<9.80true si price es menor 9.80 <=Menor o igual queprice<=9.80true si price es menor o igual que 9.80 >Mayor queprice>9.80true si price es mayor 9.80 >=Mayor o igual queprice>=9.80true si price es mayor o igual que 9.80 orOprice=9.80 or price=9.70true si price es igual que 9.80 o igual que 9.70 andYprice>9.00 and price<9.90true si price es mayor que 9.00 y menor que 9.90 modModulo (residuo división)5 mod 21 Una expresion XPath regresa un conjunto de nodos, una cadena, un booleano o un número.

17 Ejes en una trayectoría

18 Ejes ancestor Selecciona todos los ancestros del nodo actual (padre, abuelo, etc.) ancestor-or-self Selecciona todos los ancestros del nodo actual (padre, abuelo, etc.) y el nodo actual attribute Selecciona todos los atributos del nodo actual child Selecciona todos los hijos del nodo actual descendant Selecciona todos los descendientes del nodo actual (hijo, nieto, etc.) descendant-or-self Selecciona todos los descendientes del nodo actual (hijo, nieto, etc.) y el nodo actual following Selecciona todo en el documento que esta a partir del nodo actual following-sibling Selecciona todos los hermanos posteriores del nodo actual namespace Selecciona todos los nodos con el namespace del nodo actual parent Selecciona el padre del nodo actual preceding Selecciona todo en el documento que esta antes del nodo actual preceding-sibling Selecciona todos los hermanos anteriores al nodo actual self Selecciona el nodo actual

19 Prueba de nodos  Los ejes eligen la dirección que se va a dirigir, la prueba de nodos determina qué tipo de nodos seleccionar a los largo de los ejes:  nombre, cualquier elemento o atributo especificado  *, todos los nodos del tipo atributo  prefijo:*, cualquier elemento o atributo con el espacio de nombres mapeado por el prefijo  comment(), cualquier comentario  text(), cualquier nodo de texto  node(), cualquier nodo  processing-instruction(), cualquier instrucción de proceso

20 Ejemplo books.xml  Con el archivo de ejemplo y ubicados en el nodo //book[3], ejecutar las siguientes expresiones:  self::*  child::*  child::price  following::*  attribute::category  preceding-sibling::node()  preceding::comment()  descendant::author

21 Trayectorias compuestas  Para combinar los pasos en una trayectoria se utiliza diagonal (/), por lo tanto el conjunto de nodos seleccionados en el primer paso se convierte en el nodo contexto del segundo paso y así sucesivamente:  //book[3]/following-sibling::node()/author  //book[3]/preceding-sibling::node()/year  /bookstore/child::book[child::year = 2003][2]

22 Trayectorias Abreviadas  Las trayectorias son equivalentes a lo siguiente: child::nombrenombre /ancestor::node()/parent::node()/ /descendant-or-self::node()/// self::node(). parent::node().. attribute::nombre@nombre

23 Funciones XPath  Devuelven algún tipo siguiente:  node-set, una colección de nodos desordenada sin duplicados  string, una secuencia de caracteres  boolean, verdadero o falso  number, un numero real  Algunas funciones  number last()  number position()  number count(node-set)  string substring(str, str)  string concat(str, str, str*)  boolean starts-with(str, str)  boolean contains(str, str)  number string-lenght(str)  boolean not(boolean)  boolean true()  boolean false() http://www.w3schools.com/XPath/xpath_functions.asp http://www.w3.org/TR/xquery-operators/

24 Ejemplo XML Everyday Italian Giada De Laurentiis 2005 30.00 Harry Potter J K. Rowling 2005 29.99 XQuery Kick Start James McGovern Per Bothner Kurt Cagle James Linn Vaidyanathan Nagarajan 2003 49.99 Learning XML Erik T. Ray 2003 39.95

25 Referencias  http://www.w3schools.com/XPath http://www.w3schools.com/XPath  XML in a Nutshell, A Desktop Quick Reference, Elliotte Rusty Harold & W. Scott Means, O’Reilly 2001


Descargar ppt "XPath Ing. Hernández López Augusto. Introducción  Es un lenguaje para encontrar información en un documento XML. Es utilizado para navegar a través de."

Presentaciones similares


Anuncios Google