У меня есть документ XML, который преобразован в HTML, но я хочу, чтобы результат был как можно меньше. Поэтому я должен удалить все пробелы и окончания строк. Как я могу это сделать?XSLT: удалять пробелы при преобразовании в HTML
ответ
Использование
<xsl:strip-space elements="*"/>
является хорошей идеей.
Так уточняет детали выхода:
<xsl:output
indent="no"
method="html"/>
Если выше, еще не достаточно хорошо, вы можете попробовать изменения обработку text()
узлов (мышления вдоль линий схемы Docbook, где любой текст вы явно хотели бы быть в <para/>
теги, или аналогичный):
<xsl:template match="chapter/text()"/>
вы можете использовать только match="text()"
, но это может быть слишком агрессивным, как это очень расплывчато - это не обязательно убивать текст (опять же, в тегах <para/>
или аналогичных), поскольку эти текстовые узлы, вероятно, будут обрабатываться неявно с помощью встроенных шаблонов XSLT.
Вы должны быть в состоянии использовать strip-space
:
<xsl:strip-space elements="*"/>
Вы должны идти с
<xsl:strip-space elements="*"/>
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"/>