2010-01-11 2 views

ответ

3

Использование

<xsl:strip-space elements="*"/> 

является хорошей идеей.

Так уточняет детали выхода:

<xsl:output 
    indent="no" 
    method="html"/> 

Если выше, еще не достаточно хорошо, вы можете попробовать изменения обработку text() узлов (мышления вдоль линий схемы Docbook, где любой текст вы явно хотели бы быть в <para/> теги, или аналогичный):

<xsl:template match="chapter/text()"/> 

вы можете использовать только match="text()", но это может быть слишком агрессивным, как это очень расплывчато - это не обязательно убивать текст (опять же, в тегах <para/> или аналогичных), поскольку эти текстовые узлы, вероятно, будут обрабатываться неявно с помощью встроенных шаблонов XSLT.

8

Вы должны быть в состоянии использовать strip-space:

<xsl:strip-space elements="*"/> 
1

Вы должны идти с

<xsl:strip-space elements="*"/> 
2

xsl:strip-space позволит вам вырезать пробелы из результирующего дерева. Также убедитесь, что вы не генерируете лишние пробелы в таблице стилей. То есть, убедитесь, что вместо того, чтобы что-то вроде

<xsl:value-of select="@key"/> 
: 
<xsl:value-of select="@value"/> 

использования xsl:text

<xsl:value-of select="@key"/> 
<xsl:text>: </xsl:text> 
<xsl:value-of select="@value"/>