Saltar al contenido principal

output

El elemento output permite definir el formato de salida del documento. Es un elemento de nivel superior y, por lo tanto, tiene que aparecer como hijo directo del elemento stylesheet o del elemento transform.

La estructura de este elemento es la siguiente:

<xsl:output 
method="xml|html|text"
version="string"
encoding="string"
omit-xml-declaration="yes|no"
standalone="yes|no"
doctype-public="string"
doctype-system="string"
cdata-section-elements="namelist"
indent="yes|no"
media-type="string"
/>

Donde:

  • method define el formato de salida. Puede ser un documento XML (xml), un documento HTML (html) o un documento de texto (text). Por defecto, el valor es xml.
  • version define el valor del formato de salida en función de la versión del W3C. Este atributo solo es usado si el valor del atributo method es html o xml.
  • encoding establece el valor del atributo encoding en el fichero de salida.
  • omit-xml-declaration indica si la declaración XML puede ser omitida o debe ser incluída. Sus posibles valores son yes y no, siendo no el valor por defecto.
  • standalone indica si la declaración del standalone puede aparecer o no. Sus posibles valores son yes y no, siendo no el valor por defecto.
  • doctype-public permite establecer el valor del atributo PUBLIC en la declaración del DOCTYPE del fichero de salida.
  • doctype-system permite establecer el valor del atributo SYSTEM en la declaración del DOCTYPE del fichero de salida.
  • cdata-section-elements permite separar, mediante espacios en blanco, los elementos de una lista cuyo contenido debería ser escrito como secciones CDATA.
  • indent ndican si la salida debe estar indentada de acuerdo con la estructura de herencia o no. Sus posibles valores son yes y no.
  • media-type permite definir el tipo MIME del fichero de salida. Por defecto el valor es text/xml.

Todos los atributos son opcionales.

Documento XML

Un ejemplo del uso de output para obtener un documento XML sería el siguiente:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
</xsl:stylesheet>

La salida del ejemplo anterior será un fichero XML que tendrá los atributos version y encoding con los valores que el elemento output indica. Además, el fichero de salida tendrá la información indentada lo que permitirá mejorar la legibilidad.

Documento HTML

Un ejemplo del uso de output para obtener un documento HTML sería el siguiente:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="UTF-8" indent="yes"/>
</xsl:stylesheet>

En el ejemplo anterior, el fichero resultante será un fichero HTML el cual también será indentado para mejorar su legibilidad.

Documento de texto

Un ejemplo del uso de output para obtener un documento de texto sería el siguiente:

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

Consideremos el siguiente documento XML:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="hoja.xsl"?>
<agenda>
<persona id="p01">
<identificadores>
<nombre>Inés</nombre>
<apellidos>López Pérez</apellidos>
</identificadores>
<direccion>
<calle>El Ranchito 24, 6B</calle>
<localidad>Santander</localidad>
<cp>39006</cp>
</direccion>
<telefonos>
<movil>970123123</movil>
</telefonos>
</persona>
</agenda>

En ese caso, la transformación XSLT daría como resultado un documento de texto con el siguiente contenido:

  

Inés
López Pérez


El Ranchito 24, 6B
Santander
39006


970123123



El documento de salida contiene todo el texto extraído de todos los elementos del documento XML (con espacios en blanco por el medio).

Probar en el navegador