4

我有一个转换为 HTML 的 XML 文档,但我希望结果 HTML 尽可能小。所以我必须删除所有空格和行尾。我怎样才能做到这一点?

4

4 回答 4

8

您应该能够使用strip-space

<xsl:strip-space elements="*"/>
于 2010-01-11T08:46:47.533 回答
3

使用

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

是个好主意。

指定输出的详细信息也是如此:

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

如果以上仍然不够好,您可以尝试更改text()节点的处理(按照 DocBook 的模式进行思考,您明确想要的任何文本都在<para/>标签中,或类似的):

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

您可以使用 just match="text()",但这可能过于激进,因为它非常模糊 - 它不一定会杀死您想要的文本(再次,在您的<para/>标签中,或类似的),因为这些文本节点可能会被 XSLT 的内置模板隐式处理.

于 2010-01-11T23:33:36.310 回答
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"/>
于 2010-01-11T11:08:09.797 回答
1

你应该和

<xsl:strip-space elements="*"/>
于 2010-01-11T08:47:50.917 回答