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?

¿Fue útil?

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="*"/>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top