CONVERSIÓN Y ADAPTACIÓN DE DOCUMENTOS XML XSLT eXtensible 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<‘valor’] Nodo[subnodo>‘valor’]
<xsl:sort select=“nodo"/>
<xsl:if test=“expresion”>
Xsl:choose/xsl:when/xsl:otherwise