XSL Stylesheet para transformar documento XML a HTML - XHTML

Vea la sección sobre Ant para transformar XML vía "XSL Stylesheets" para aplicar este "XSL Stylesheet" al documento XML.

Si desea observar el documento HTML generado, simplemente abra su "Browser" (Navegador).


<?xml version="1.0"?>
<xsl:stylesheet
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    version="1.0">

<!-- La declaración anterior indica que se trata de un documento XML
        utilizando el Namespace para XSL -->

<!-- Este primer template indica que al ser encontrado 
        el elemento raíz del documento XML (<?xml version="1.0"?>)
	debe ser impreso HTML seguido de la aplicación de 
	templates
	
     -->

 <xsl:template match="/">
    <HTML>
	<xsl:apply-templates/>
    </HTML>
 </xsl:template>

     <!-- Cuando se entre al elemento productos se imprime 
            la cabezera del documento HTML (HEAD) e inicia
	    el cuerpo del documento (BODY) , se envía un titulo 
	    seguido de una linea horizontal. 
	    Posteriormente se inicia una tabla (TABLE) de contenido
	    con un renglón indicando los títulos correspondientes.
	    Dicha tabla permanece abierta hasta que hayan sido aplicados 
	    los templates restantes.
	-->    

 <xsl:template match="productos">
    <HEAD>
	<TITLE>Productos</TITLE>
    </HEAD>

    <BODY bgcolor="FFFFFF">
      <H3 align="center">Información de Productos</H3>
      <HR/>	

      <TABLE align="center" border="5">
	<TR>
           <TH>Nombre</TH>
           <TH>Ubicación</TH>
           <TH>Disponiblidad</TH>
           <TH>Tiempo de Entrega</TH>
	   <TH>Costo</TH>
       </TR>

        	<xsl:apply-templates/>

      </TABLE>
	<HR/>
    </BODY>
 </xsl:template>

	
    <!-- Se inicia un renglon (TR) por cada elemento producto
            del documento , dicho renglón permanece abierto hasta que
	    hayan sido aplicados los template's de los elementos 
	    anidados en producto.
   -->

    <xsl:template match="producto">
	<TR>
	   <xsl:apply-templates/>
	</TR>
    </xsl:template>    


    <!-- Se imprime una celda (TD) con el contenido de los
            elementos nombre,tiempoentrega y costo. 
            Nótese el uso del carácter | para indicar un OR, 
            lo anterior permite escribir un solo template para 
            elementos con características comunes.

    -->


    <xsl:template match="nombre|tiempoentrega|costo">
          <TD><xsl:value-of select="."/></TD>
    </xsl:template>


   <!-- Al entrar al template del elemento ubicacion
           se imprimen dos celdas (TD), una sobre el valor del elemento 
	   y otra mediante condicionales (if's) la cual imprime letras rojas
	    en dado caso de ser negativo el atributo disponible.
          -->	    
	   

    <xsl:template match="ubicacion">

          <TD><xsl:value-of select="."/></TD>

	         <xsl:if test="@disponible='si'">
                     <TD><B>Si</B></TD>
	         </xsl:if>

	         <xsl:if test="@disponible='no'">
	             <TD><FONT color="red">No</FONT></TD>
	         </xsl:if> 
    </xsl:template>


    <!-- Se cierra el elemento raíz del documento XML -->


</xsl:stylesheet>

Menú Curso

XML y sus Orígenes

Manipulación y Proceso de XML

DOM, SAX y JDOM

Namespaces, Schemas y DTD's

XSL: XSLT, XPath y TraX

XMLRPC y SOAP (Web Services)

Diseño con XMLRPC

Diseño con SOAP .

Apéndice "A" (Procesando XML con parsers).

Apéndice "B" (Validando XML con Schemas y DTD's).

Apéndice "C" (XSL: XPath y "XSL Stylesheets").

Apéndice "D" (XMLRPC: Diseño).

Apéndice "E" (SOAP, WSDL, UDDI y WSIL : Diseño).