FANDOM


Una sencilla transformaciónEditar

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>
El contenido de la comunidad está disponible bajo CC-BY-SA a menos que se indique lo contrario.