Una sencilla transformación[]
En el capítulo de introducción del libro se muestra una sencilla transformación de un documento XML en uno HTML utilizando XSL. El documento XML, llamado brazil.xml, es el siguiente:
<?xml version="1.0" encoding="iso-8859-15"?>
<?xml-stylesheet type="text/xsl" href="brazil.xsl"?>
<pelicula titulo="Brazil" estreno="1985" minutos="142">
<direccion>
<director nombre="Terry" apellidos="Gilliam"/>
</direccion>
<produccion>
<productor nombre="Patrick" apellidos="Cassavetti"/>
<productor nombre="Arnon" apellidos="Milchan"/>
</produccion>
<guion>
<guionista nombre="Terry" apellidos="Gilliam"/>
<guionista nombre="Tom" apellidos="Stoppard"/>
<guionista nombre="Charles" apellidos="McKeown"/>
</guion>
<reparto>
<interprete nombre="Jonathan" apellidos="Pryce"
papel="protagonista"/>
<interprete nombre="Robert" apellidos="De Niro"
papel="protagonista"/>
<interprete nombre="Kim" apellidos="Greist"
papel="protagonista"/>
<interprete nombre="Michael" apellidos="Palin"
papel="secundario"/>
<interprete nombre="Ian" apellidos="Holm"
papel="secundario"/>
<interprete nombre="Bob" apellidos="Hoskins"
papel="secundario"/>
</reparto>
</pelicula>
La transformación se logra gracias al brazil.xsl, cuyo código es el siguiente:
<?xml version="1.0" encoding="iso-8859-15"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:preserve-space elements="*"/>
<xsl:template match="/">
<html>
<head>
<title>
<xsl:value-of select="/pelicula/@titulo"/>
</title>
</head>
<body>
<b><xsl:value-of select="/pelicula/@titulo"/></b><br/>
<u>Director</u>:<xsl:text> </xsl:text>
<xsl:value-of
select="/pelicula/direccion/director/@nombre"/>
<xsl:text> </xsl:text>
<xsl:value-of
select="/pelicula/direccion/director/@apellidos"/>
<br/>
<u>Intérpretes</u>:<br/>
<xsl:for-each select="/pelicula/reparto/interprete">
<xsl:if test="@papel = 'protagonista'">
<xsl:value-of select="@nombre"/>
<xsl:text> </xsl:text>
<xsl:value-of select="@apellidos"/><br/>
</xsl:if>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>