J'ai un document XML qui est transformé en HTML mais je veux que le résultat HTML soit aussi petit que possible. Donc, je dois supprimer tous les espaces blancs et les fins de ligne. Comment puis je faire ça?XSLT: supprime les espaces blancs lors de la conversion au format HTML
Répondre
à l'aide
<xsl:strip-space elements="*"/>
est une bonne idée.
Alors spécifie les détails de la sortie:
<xsl:output
indent="no"
method="html"/>
Si ce qui précède ne sont pas encore assez bon, vous pouvez essayer de modifier le traitement des text()
noeuds (penser le long des lignes du schéma de DocBook, où tout texte vous vouliez explicitement serait dans <para/>
balises, ou similaire):
<xsl:template match="chapter/text()"/>
vous pouvez simplement utiliser match="text()"
mais cela pourrait être trop agressif car il est très vague - il tue pas nécessairement le texte vous voulez (encore une fois, dans vos balises <para/>
, ou similaire) car ces nœuds de texte seront probablement traités implicitement par les modèles intégrés de XSLT.
Vous devriez pouvoir utiliser strip-space
:
<xsl:strip-space elements="*"/>
Vous devriez aller avec
<xsl:strip-space elements="*"/>
xsl:strip-space
dépouillera vous laisser sortir les espaces de l'arbre résultat. Assurez-vous également de ne pas générer d'espace supplémentaire dans la feuille de style. Cela est, assurez-vous au lieu de quelque chose comme
<xsl:value-of select="@key"/>
:
<xsl:value-of select="@value"/>
utilisation xsl:text
<xsl:value-of select="@key"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="@value"/>