XML Tecnologías Asociadas XPath XML Tecnologías Asociadas
XPath Es un lenguaje no XML Es un lenguaje de consulta Cumple un rol fundamental en tecnologías asociadas como XPointer, Xlink y XSL
XPath Es considerada una de las especificaciones fundamentales de XML Es una especificación para aplicaciones relacionadas con XML
XPath Objetivo: La meta de XPath es definir un lenguaje que permita direccionar partes de documentos XML
Componentes del lenguaje Direccionar a partes de XML Dar soporte a funciones y expresiones de lenguaje
Contexto y Modelo de Datos raíz elemento elemento elemento atributo text()
Localidades Las localidades en XPath son similares a como se especifican las rutas en directorios, con el símbolo “/” También se puede apreciar sintaxis similar a una subclase en C++ con el símbolo ::
Aprendiendo con Ejemplos <?xml version=“1.0” encoding=“iso-8859-1”?> <historicaldates> <author>La countess de Pandesquieau</author> <description>Some notable imprisonments</description> <entry country=“france”> <date day=“13” month=“oct” year=“1307”/> <description>The templars are captured by orders of Philip IV</description> </entry> <entry country=“england”> <date day=“2” month=“may” year=“1536”/> <description>Anne Boleyn is imprisioned under the charges of adultery with her brother an high treason.</description> <date year=“1430”/> <description>Joan of Arc, the maid of Orléans, is captured by Bourguignon soldiers</description> </historicaldates>
Ejemplos Child::author Child::author/text() Child::description <author>La countess de Pandesquieau</author> Child::author/text() La countess de Pandiesquieau Child::description <description>Some notable imprisonments</description>
Ejemplos Descendant::description Seleccionará todos los elementos <description> bajo el elemento o nodo actual
Ejemplos Por ejemplo seleccionar todas las fechas de los eventos históricos, sería: Child::entry/child::date
Funcion posición Child::entry[position()=2]/child::date] Seleccionará sólo la fecha de la segunda entrada <date day=“2” month=“may” year=“1536”>
Funciones Number position() Number count(node-set) Number last() Node-set id(object) String name(node-set)
Funciones de string String concat(string, string, string*) Boolean starts-with(string,string) Boolean contains(string , string) Boolean substring-before(string,string) Boolean substring-after(string,string)
Funciones de String 2 String Substring(string,string) Number string-length(string) String normalize-space(string?) String translate(string,string,string)
Funciones booleanas Boolean boolean(object) Boolean false() Boolean true() Boolean not(boolean) Boolean lang(string)
Funciones numéricas Number number(object?) Number sum(node-set) Number floor(number) Number ceiling(number) Number round(number)
Herramientas XPath Xpath esta principalmente utilizado en el estándar de XSLT, donde veremos sus mayores usos. Se pueden confeccionar herramientas especiales que utilicen XPath
Resumen de Sintáxis Child, es la axisa por defecto, child:: podría ser omitido desde alguna posición en particular Attribute:: puede ser abreviado por @ /descendant-or-self::/node()/ puede ser abreviado por // /self::node()/ puede ser abreviado por . Parent::node() puede ser abreviado por .
Preguntas ¿XPath se puede ejecutar por si sólo? ¿Considera usted que los documentos XML son similares a las bases de datos? ¿Qué aplicación práctica ve en esta tecnología?
Ejercicio Obtener los nodos “libro” Mostrar aquellos libros que tengan “.NET” en su nombre Calcular la suma total de la orden (esperar instrucción)