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 esxml
.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 atributomethod
eshtml
oxml
.encoding
establece el valor del atributoencoding
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 sonyes
yno
, siendono
el valor por defecto.standalone
indica si la declaración delstandalone
puede aparecer o no. Sus posibles valores sonyes
yno
, siendono
el valor por defecto.doctype-public
permite establecer el valor del atributoPUBLIC
en la declaración delDOCTYPE
del fichero de salida.doctype-system
permite establecer el valor del atributoSYSTEM
en la declaración delDOCTYPE
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 sonyes
yno
.media-type
permite definir el tipo MIME del fichero de salida. Por defecto el valor estext/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).