3.283 cursos gratis
6.262.191 alumnos
Publica tu curso gratis
Busca cursos gratis:
Estás aquí: mailxmail > Cursos de Informática > Programación > Primeros pasos con XML y XSL > Creación de una hoja de estilos XSL que transformará el documento XML en un fichero XSL-FO

Primeros pasos con XML y XSL

Autor: Ricardo Borillo
Curso:  4,25/5 4,25/5 (54 opiniones) |6828 alumnos|Fecha publicación: 10/09/2004

Capítulo 15:

 Creación de una hoja de estilos XSL que transformará el documento XML en un fichero XSL-FO

Con el fin de que la informacion que se genere en el documento XSL-FO de salida pueda ser dinamica, haremos que los datos se almacenen en un documento XML, transformandose en el documento de salida mediante el uso de una hoja de estilos XSL.

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="
http://www.w3.org/1999/XSL/Transform " xmlns:fo="http://www.w3.org/1999/XSL/Format ">
  <xsl:output encoding="ISO-8859-1" indent="yes"/>

  <xsl:template match="listado">
    <fo:root xmlns:fo="
http://www.w3.org/1999/XSL/Format ">
      <fo:layout-master-set>
        <fo:simple-page-master margin-right="1cm" margin-left="1cm" margin-bottom="1cm"
                               margin-top="1cm" page-width="210mm" page-height="297mm" master-name="first">
          <fo:region-before extent="1cm"/>
          <fo:region-body margin-top="1cm" margin-bottom="1cm"/>
          <fo:region-after extent="1cm"/>
        </fo:simple-page-master>
      </fo:layout-master-set>

      <fo:page-sequence master-reference="first">
        <fo:flow flow-name="xsl-region-body">
          <fo:block>
     <xsl:value-of select="cabecera" />
          </fo:block>

   <fo:list-block space-before="0.5cm" space-after="0.5cm" font-size="12pt">
     <xsl:apply-templates select="articulos/articulo" />
          </fo:list-block>
        </fo:flow>
      </fo:page-sequence>
    </fo:root>
  </xsl:template>

  <xsl:template match="articulo">
    <fo:list-item>
      <fo:list-item-label end-indent="label-end()">
        <fo:block text-align="start">
          <xsl:text>&#x2022;</xsl:text>
        </fo:block>
      </fo:list-item-label>
      <fo:list-item-body start-indent="body-start()">
        <fo:block>
          <xsl:value-of select="text()"/>
        </fo:block>
      </fo:list-item-body>
    </fo:list-item>
  </xsl:template>
</xsl:stylesheet>

Ejecutar la transformación con un parser XSL
Si vamos a utilizar un procesador en linea de comandos como puede ser el XSLTPROC, la instrucción a ejecutar seria la siguiente:

xsltproc sample.xsl sample.xml > sample.fo

Si vamos a utilizar Apache ANT. El fichero "build.xml" seria el siguiente:

<?xml version="1.0"?>
<project name="procesando-xml" default="fo">
  <target name="init" />

  <target name="fo" depends="init">
    <echo message="Generando sample.fo ..." />
    <xslt in="sample.xml" out="sample.fo" style="sample.xsl">
      <outputproperty name="method" value="xml"/>
      <outputproperty name="standalone" value="yes"/>
      <outputproperty name="encoding" value="ISO-8859-1"/>
      <outputproperty name="indent" value="yes"/>
    </xslt>
  </target>
</project>

La ejecucion de esta definicion nos permite tomar un fichero "sample.xml" como entrada, aplicarle una hoja de estilos xsl "sample.xsl" y obtener como salida un fichero "sample.fo" con el codigo FO correspondiente.

Procesamiento de dicho fichero XSL-FO con Apache FOP
Para obtener finalmente el fichero PDF que queremos como resultado, podemos ejecutar el siguiente script que viene con la distribucion de Apache FOP:

/opt/fop-0.20.5rc2/fop.sh sample.fo -pdf sample.pdf

Recibe nuestras novedades
Al presionar "Recibir" estás dándote de alta y aceptas las condiciones legales de mailxmail

Hay 54 opiniones. Opina sobre este curso.


Cursos similares a Primeros pasos con XML y XSL


Cursos Valoración Alumnos Vídeo
Internet. Tu negocio
Intenet fue un negocio que en algún momento parecía una idea "descabellada". Ahora el internet es una herramienta de uso indispensable en las e... [03/02/09]
5/5 716  
Instalación de un Servidor de Correo en Linux
Linux es un sistema operativo libre, con lo que no se tiene que pagar por ningún tipo de licencia. También se puede conseguir el código fuente y poderlo modificar libreme... [16/06/04]
 4,38/5 13.755  
Informática. Desarrollo científico del ordenador
Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo científico que hay detrás de una computadora u ordenado... [10/07/09]
5/5 4.408  


Publicar en   del.icio.us    digg    meneame

¿Qué es mailxmail.com?|ISSN: 1699-4914|Recomiéndanos|Ayuda
Condiciones legales de mailxmail