Despabilando la MonoNeurona::Internet es de todos [Inicio] [Regresar]
WWW \ Mi primer XSLT con PHP5
WWW
Mi primer XSLT con PHP5

Este artículo ha sido consultado en 802 ocasiones.

De la wikipedia:

XSLT o XSL Transformaciones es un estándar de la organización W3C que presenta una forma de transformar documentos XML en otros e incluso a formatos que no son XML. Las hojas de estilo XSLT realizan la transformación del documento utilizando una o varias reglas de plantilla: unidas al documento fuente a transformar, esas reglas de plantilla alimentan a un procesador de XSLT, el cual realiza las transformaciones deseadas colocando el resultado en un archivo de salida o, como en el caso de una pagina web, directamente en un dispositivo de presentación, como el monitor de un usuario.

Actualmente, XSLT es muy usado en la edición web, generando páginas HTML o XHTML. La unión de XML y XSLT permite separar contenido y presentación, aumentando así la productividad.

Dicho de otra manera, XSLT es un lenguaje que toma un XML, lo procesa siguiendo las indicaciones de un XSl resultando otro archivo XML con formato (tipicamente un XHTML para Mozilla o un WML para celulares y Palm). El proceso es el siguiente:

Un archivo con la información en formato XML. (Este archivo pueder ser creado "al vuelo" a través de una consulta SQL):


// El query:
$q = "SELECT id, titulo, autor, existencia FROM libros ORDER BY titulo"";

$result=$conn->query($q);

print "<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?>";
print "<?xml-stylesheet href=\"books.xsl\" type=\"text/xsl\"?>";

print "<catalog>
<nombre>La biblioteca de Babel </nombre>
<telefono>85 50 51 32 </telefono>
";

while ($result->fetchInto($Row)) {

// $Row es un array
print "<book id=\"" . $Row[0] . "\">
<titulo>\"" . $Row[1] . "\"</titulo>
<autor>\"" . $Row[2] . "\"</autor>
<existencia>\"" . $Row[3] . "\"</existencia>
</book>";

}

print "</catalog>";

No importa cómo lo obtuvimos, el caso es que tenemos el archivo books.xml. Note que el archivo está vinculado a la hoja de estilos books.xsl y que en esta tenemos la hoja es estilos en cascada CSS books.css.

Es decir el proceso es:

books.xml -> books.xsl ->books.css -> nuestra_pagina.xhtml

Existen muchas implementaciones de XSLT, de hecho cada lenguaje tiene la suya, por ejemplo, podríamos crear el archivo nuestra_pagina.xhtml con el Xalan que es el XSLT de Java con:

$java org.apache.xalan.xslt.Process -IN books.xml -XSL books.xsl -OUT nuestra_pagina.xhtml

Sin embargo, también podríamos hacerlo con el archivo inixslt.php usando la librería XSL de PHP5:

   1:<?php
   2:ob_start();
   3: 
   4:/**
   5: * XSLT Example  
   6: * @author  Manuel Montoya <manuel@mononeurona.org>
   7: * @license http://www.opensource.org/licenses/gpl-license.php
   8: * @filesource
   9: */
  10: 
  11: $xml = "books.xml";
  12: $xslt = "books.xsl";
  13: 
  14: $xsl      = new DomDocument(); 
  15: $inputdom = new DomDocument();
  16: 
  17: $xsl->load($xslt);
  18: $inputdom->load($xml);
  19: 
  20: 
  21: $proc = new XsltProcessor(); 
  22: 
  23: $proc->registerPhpFunctions();
  24: 
  25: // Load the documents and process using $xslt 
  26: $xsl = $proc->importStylesheet($xsl); 
  27: 
  28: /** transform and output the xml document */ 
  29: $newdom = $proc->transformToDoc($inputdom); 
  30: 
  31: print $newdom->saveXML();
  32:  
  33: ob_end_flush();
  34:?>

El resultado puede verse aquí.


Última actualización: 2007-04-29 10:56:59-05



ir arriba
The Queen is here Mozilla Firefox The Best DataBase CakePHP Framework CSS GNU Hacker