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"?>
<pelicula titulo="Brazil" estreno="1985" minutos="132">
	<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>

Y esta transformación se logra añadiendo esta línea al documento XML, para indicarle qué transformación XSL debe realizar:

<?xml version="1.0" encoding="iso-8859-15"?>
<?xml-stylesheet type="text/xsl" href="brazil.xsl"?><pelicula titulo="Brazil" estreno="1985" minutos="132">
...

Interfaces de usuario con XULEditar

El código fuente necesario para crear el cuadro de diálogo visto en el capítulo de introducción es el siguiente:

<?xml version="1.0" encoding="iso-8859-15"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window
	xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
	title="Nueva película">
 
	<script src="11-filmoteca.js"/>
 
	<vbox>
 
		<hbox>
 
		<groupbox>
			<caption label="Personal"/>
			<label value="Título:"/>
			<textbox id="titulo"/>
			<label value="Director:"/>
			<textbox id="director"/>
			<label value="Productor:"/>
			<textbox id="productor"/>
			<label value="Guionista:"/>
			<textbox id="guionista"/>
			<label value="Protagonista:"/>
			<textbox id="protagonista"/>
		</groupbox>
 
		<vbox>
			<label value="Género:"/>
			<checkbox id="genero_drama"
			checked="true" label="Drama"/>
			<checkbox id="genero_comedia"
			label="Comedia"/>
			<checkbox id="genero_aventuras"
			label="Aventuras"/>
			<checkbox id="genero_romance"
			label="Romance"/>
			<checkbox id="genero_cifi"
			label="Ciencia ficción"/>
		</vbox>
 
		<vbox>
			<label value="Calificación:"/>
			<radiogroup>
			<radio id="calificacion_0" value="0"
				label="Lo peor"/>
			<radio id="calificacion_1" value="1"
				label="Mala"/>
			<radio id="calificacion_3" value="2"
				label="Regular"/>
			<radio id="calificacion_4" value="3"
				selected="true"
				label="Buena"/>
			<radio id="calificacion_5" value="4"
				label="Imprescindible"/>
			<radio id="calificacion_5" value="5"
				label="Obra maestra"/>
			</radiogroup>
		</vbox>
 
		</hbox>
 
		<hbox align="right">
 
		<button
			id="aceptar"
			label="Aceptar"
			default="false"
			onclick="boton_aceptar()"/>
 
		<button
			id="cancelar"
			label="Cancelar"
			default="true"/>
 
		</hbox>
 
</vbox>
 
</window>

EnlacesEditar

El contenido de la comunidad está disponible bajo CC-BY-SA a menos que se indique lo contrario.