XSLT:quitar espacios en blanco cuando la transformación a HTML
-
19-09-2019 - |
Pregunta
Tengo un documento XML que se transforma en HTML, pero quiero que el resultado HTML al ser tan pequeño como sea posible.Así que me tiene que quitar todos los espacios en blanco y los finales de línea.¿Cómo puedo hacer eso?
Solución
El uso de
<xsl:strip-space elements="*"/>
es una buena idea.
Así es la especificación de los detalles de la salida:
<xsl:output
indent="no"
method="html"/>
Si todavía no están lo suficientemente bueno, usted puede tratar de alterar el procesamiento de text()
los nodos (pensando que a lo largo de las líneas de DocBook del esquema, donde cualquier texto explícitamente quería que sería en <para/>
etiquetas, o similar):
<xsl:template match="chapter/text()"/>
Usted puede usar simplemente match="text()"
pero eso podría ser demasiado agresivo, ya que es muy vago--no necesariamente matar el texto que desee (de nuevo, en su <para/>
etiquetas, o similar) como los nodos de texto probablemente será procesada de manera implícita mediante XSLT integrado en las plantillas.
Otros consejos
Usted debe ser capaz de usar strip-space
:
<xsl:strip-space elements="*"/>
xsl:strip-space
le permitirá retirar de él los espacios en blanco del árbol de resultados. También asegúrese de que no generan espacios en blanco extra en la hoja de estilo. Es decir, asegúrese de que en lugar de algo así como
<xsl:value-of select="@key"/>
:
<xsl:value-of select="@value"/>
uso xsl:text
<xsl:value-of select="@key"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="@value"/>
Hay que ir con
<xsl:strip-space elements="*"/>