EJEMPLO XML para trabajar con este documento: allelements.xml
MULTIPLES EJEMPLOS de XSL aplicables aquí: http://www.ibiblio.org/xml/books/bible/examples/14/index.html
xsl:template
con un atributo match. Los Nodos en el
árbol de entrada son comparados con los patterns (patrones)
de los atributos match
de los diferentes elementos "template" (plantilla). Cuando se
encuentra un match que coincide con el nodo, los contenidos
de la plantilla se representan en la salida.xsl:value-of
.xsl:apply-templates
y con el elemento xsl:for-each .match del elemento xsl:template
es un patrón de búsqueda qué nodos debe transformar la plantilla.select
de los elementos xsl:apply-templates,
xsl:value-of, xsl:for-each, xsl:copy-of,
xsl:variable, xsl:param, xsl:with-param
and xsl:sort elements.Otro ejemplo de XPath: (devolvería el valor
del nombre del propio nodo como texto):
<xsl:template match="ATOM">
<P><xsl:value-of
select="self::node()"/></P>
</xsl:template>
Sintaxis de las Expresiones XPath
|
Abreviatura |
Completo |
|
|
|
|
|
|
|
|
|
|
Ejemplo de sintaxis abreviada:
xsl:element, xsl:attribute, xsl:processing-instruction,
xsl:comment, y xsl:text pueden transformar (dar
un formato de salida) atributos, processing
instructions, comentarios, y textos
calculados desde los datos del documento de entrada.xsl:attribute-set define un grupo común de
atributos que pueden ser aplicados a múltiples elementos y en diferentes
templates (plantillas) con xsl:use-attribute-sets.xsl:copy copia el nodo en el que se encuentra
dentro de la representación de salida.xsl:number inserta el número específicado por
su atributo value usando un formato de numaración específico
dado en el atributo format .xsl:sort puede reordenar los nodos de entrada
antes de procesarlos en la salida.Forma ampliada:
<xsl:sort order="descending" data-type="number"
select="ATOMIC_NUMBER"/>
Funciones que operan en los NODOS
|
Function |
Devuelve tipo |
|
número |
|
número |
|
número |
|
nodo |
|
nodo |
|
nodo |
|
cadena de texto |
|
cadena de texto |
|
cadena de texto |
|
cadena de texto |
Otro ejemplo de position():
<xsl:template match="ATOMIC_NUMBER[position()=1 and
position()=last()]">
<xsl:value-of select="."/>
</xsl:template>
FUNCIONES QUE OPERAN CON NÚMEROS:
floor() devuelve el entero máyor rnás pequeño que el
número
ceiling() devuelve el entero rnás pequeño máyor que el
número
round() redondea hasta el entero más cercano
sum() devuelve la suma de sus argumentosEJEMPLO:
<xsl:template match="/PERIODIC_TABLE">
<HTML>
<BODY>
<H1>Average Atomic Weight</H1>
<xsl:value-of select="sum(descendant::ATOMIC_WEIGHT)
div count(descendant::ATOMIC_WEIGHT)"/>
</BODY>
</HTML>
</xsl:template>
Ejemplo: style-sheet XSL que cuenta átomos
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="PERIODIC_TABLE">
<html>
<head><title>The Elements</title></head>
<body>
<table>
<tr><xsl:apply-templates select="ATOM"/></tr>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="ATOM">
<td><xsl:number value="position()"/></td>
<td><xsl:value-of select="NAME"/></td>
</xsl:template>
</xsl:stylesheet>
Functions That Operate on Strings
|
Function |
Return Type |
|
Booleano |
|
Booleano |
|
cadena de texto |
|
cadena de texto |
|
cadena de texto |
|
Número |
|
cadena de texto |
|
cadena de texto |
|
cadena de texto |
|
cadena de texto |
xsl:variable define constantes mediante
nombres, que pueden hacer tu código más claro y legible.<xsl:variable name="copy99"> Copyright 1999 Elliotte Rusty Harold </xsl:variable>
----------
<BLOCK COPYRIGHT="{$copy99}">
</BLOCK >
----------
<xsl:value-of select="$copy99"/>
name del elemnto xsl:template)
ayudan a reutilizar el código común entre plantillas y partes de las
plantillas.xsl:strip-space
o el atributo xml:space diga otra cosa.xsl:if produce una salida si, y sólo si,
su atributo test attribute es true (verdadero).xsl:choose representa la plantilla del
primero de sus xsl:when children cuyo atributo test
es verdadero, o la plantilla de su elemento xsl:otherwise
si ninguno de sus elementos xsl:when cumple un atributo true.xsl:import y xsl:include
mezclan reglas de diferentes hojas de estilo.xsl:stylesheet permite incluir una hoja
de estilo directamente en el documento sobre el que se aplica.Documento de trabajo realizado por Jesús
Noriega como apoyo a la formación de XML/XSL
Sobre ejemplos desarrollados por Elliot Rusty Harold