Site icon Consejos WEB

XSLT una forma sencilla para generar salidas

El siguiente ejemplo ilustra lo simple que es utilizar XSLT para generar páginas HTML utilizando un fichero XML local o remoto.

Todo lo que hace falta es la siguiente clase de PHP que genera la página HTML a partir de un archivo XML generado desde un servidor remoto tras realizar una petición.

Para poder utilizar las funciones de xslt que tiene PHP, es necesario haber compilado PHP con sablot en vuestro servidor. En la siguiente dirección podeis descargar las librerías, para Linux y Windows:

http://www.gingerall.com/charlie/ga/xml/d_sab.xml

Finalmente, teneis que utilizar la sigiente plantilla XSL para aplicar al documento XML que devuelve la dirección utilizada en este ejemplo:

http://www.paleontologia.co.uk/biblioteca/defShareMgr.php?action=shareterms&materia=paleontologia&desde=a&hasta=f

Aquí está la plantilla:


<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">

<xsl:template match="/">
	
    <HTML>
        <HEAD>
					<style type="text/css">
					.definition {font-family: Verdana, Arial; font-size:10px}
					h1 {font-family: Verdana, Arial; font-size:12px; font-weight:bold; text-align:center; border-bottom-style: double; }
					#indent {text-indent: 10px; outline: 1px}
        </style>

        </HEAD>
        <BODY>
        <xsl:apply-templates/>
        </BODY>
    </HTML>
</xsl:template>

<!-- Get Subject -->
<xsl:template match="SUBJECT">
		<h1 class="titulo">Definiciones de <xsl:value-of select='translate(//SUBJECT/@name, 
"abcdefghijklmnopsqrtuvwxyz", "ABCDEFGHIJKLMNOPSQRTUVWXYZ")'/></h1>
    <xsl:apply-templates/>
</xsl:template>


<!-- Get data elements -->
<xsl:template match="CONCEPT">
			<p class="definition"><xsl:number level="single" count="CONCEPT"/>. <U><B><xsl:value-of select="TERM"/></B></U>.- <xsl:value-of select="DEFINITION"/>. <xsl:value-of select="AUTHOR"/>. <xsl:value-of select="DATE"/>.</p>
</xsl:template>

</xsl:stylesheet>

Exit mobile version