conversiÓn y adaptaciÓn de documentos xml xslt extensible stylesheet languaje transformation

Post on 23-Jan-2016

232 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

CONVERSIÓN Y ADAPTACIÓN DE

DOCUMENTOS XML

XSLTeXtensible Stylesheet

Languaje Transformation

CSS

Ejemplo

XSLT Es un lenguaje de programación. Genera documentos a partir de documentos XML. A un documento se le pueden aplicar diferentes hojas

de estilo XSLT. Un hoja de estilo XSLT se puede aplicar a distintos

documentos XML.

EJEMPLO

XSLT

bdalumnos.xml

bdalumnos.xsl

HOJAS DE ESTILO XSLT

Es un documento XML. Contiene una colección de plantillas. Cada plantilla establece cómo se transforma un

elemento documento XML. Si hay más de una plantilla sólo se aplica una de

ellas Si la plantilla no tiene nada el elemento y sus

descendientes no aparecen. bdalumnos0_a.xsl

XPATH

Lenguaje que permite seleccionar nodos de un documento XML y calcular valores a partir de su contenido.

Mostrar el resultado de una expresión

ÁRBOL DEL DOCUMENTO

EXPRESIONES XPATH

Una expresión XPath es una cadena de texto que representa un recorrido en el árbol del documento.

Evaluar una expresión XPath es buscar si hay nodos en el documento que se ajustan al recorrido definido en la expresión

http://www.mizar.dk/XPath/Default.aspx

EXPRESIONES XPATH I /:si está al principio de la expresión, indica el nodo raíz, si no, indica

"hijo". /biblioteca/libro/autor

//: si está al principio de la expresión, indica el nodo raíz, si no, indica "hijo".

/biblioteca//autor //autor

@atributo: selecciona el atributo. /biblioteca/libro/autor/@fechaNacimiento //@fechaNacimiento

..: selecciona el elemento padre. /biblioteca/libro/autor/@fechaNacimiento/.. //autor/..

|: permite elegir varios recorridos. //autor|//titulo

EXPRESIONES XPATH II node(): selecciona todos los nodos (elementos y texto)

//node() //libro/node() //autor/node() //libro//node()

text(): selecciona el contenido del elemento (texto). //autor/text() //text()

*: selecciona todos los elementos /biblioteca/* /biblioteca//* //libro/*

@*: selecciona todos los atributos //@* //autor/@*

EXPRESIONES XPATH III [@atributo]: selecciona los elementos que

tienen el atributo. //autor[@fechaNacimiento] //*[@año]

[número]: si hay varios resultados selecciona uno de ellos por número de orden; last() selecciona el último de ellos //libro[1] //libro[last()] //libro[last()-1]

CONDICIONES EN XPATH [condicion]: selecciona los nodos que

cumplen la condición. La condición puede utilizar el valor de un atributo (utilizando @) o el texto que contiene el elemento (utilizando .)

En las condiciones se pueden utilizar los operadores siguientes: operador de unión (OR lógico): | operadores lógicos: and, or, not() operadores aritméticos: +, -, *, div, mod operadores de comparación: =, !=, <, >, <=, >=

EJEMPLOS CONDICIONES XPATH //fechaPublicacion[@año<1970] //fechaPublicacion[@año<1970]/.. //libro[autor='Mario Vargas Llosa'] //autor[.="Mario Vargas Llosa"]/.. //autor[.="Mario Vargas Llosa"]/@* //autor[.="Mario Vargas Llosa"]/..//@* //libro[autor='Mario Vargas Llosa' and fechaPublicacion/@año="1969"] //titulo[.="La vida está en otra parte"]/../fechaPublicacion/@año //fechaPublicacion[@año=1973]/../titulo //fechaPublicacion[@año=//titulo[.="La vida está en otra

parte"]/../fechaPublicacion/@año]/../titulo títulos de los libros del mismo autor que la novela "Pantaleón y las

visitadoras" //libro[titulo= "Pantaleón y las visitadoras" ]/autor //libro[autor=//libro[titulo= "Pantaleón y las visitadoras" ]/autor]/titulo

ENLAZAR XSLT CON XML

PLANTILLAS VACÍAS

APLICACIÓN DE PLANTILLAS DE NODOS DESCENDIENTES

MOSTRAR CONTENIDO ELEMENTOS

MOSTRAR CONTENIDO ATRIBUTOS

Mostrar texto adicional

TRANSFORMACIÓN A HTML

ATRIBUTOS ETIQUETAS HTML

<xsl:for-each select=“nodo”>

Selecciona todos los elementos que hay dentro del elemento que se pasa por parámetro.

Valores de select Nodo Nodo[subnodo=‘valor’] Nodo[subnodo!=‘valor’] Nodo[subnodo&lt;‘valor’] Nodo[subnodo&gt;‘valor’]

<xsl:sort select=“nodo"/>

<xsl:if test=“expresion”>

Xsl:choose/xsl:when/xsl:otherwise

top related