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:
methoddefine 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.versiondefine el valor del formato de salida en función de la versión del W3C. Este atributo solo es usado si el valor del atributomethodeshtmloxml.encodingestablece el valor del atributoencodingen el fichero de salida.omit-xml-declarationindica si la declaración XML puede ser omitida o debe ser incluída. Sus posibles valores sonyesyno, siendonoel valor por defecto.standaloneindica si la declaración delstandalonepuede aparecer o no. Sus posibles valores sonyesyno, siendonoel valor por defecto.doctype-publicpermite establecer el valor del atributoPUBLICen la declaración delDOCTYPEdel fichero de salida.doctype-systempermite establecer el valor del atributoSYSTEMen la declaración delDOCTYPEdel fichero de salida.cdata-section-elementspermite separar, mediante espacios en blanco, los elementos de una lista cuyo contenido debería ser escrito como secciones CDATA.indentndican si la salida debe estar indentada de acuerdo con la estructura de herencia o no. Sus posibles valores sonyesyno.media-typepermite 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).