XSLT删除NewLine / CRLF

时间:2016-09-02 09:27:47

标签: xml xslt xslt-1.0

我正在生成一个包含CRLF的XML

 <col4> 
* Comment # 1
* Comment # 2
* Comment # 2
* Comment # 3
* Comment # 3 edited
</col4>

现在我在转换后将其转换为HTML,输出中缺少CRLF。 HTML中的输出生成以下内容(缺少CRLF)

* Comment # 1 * Comment # 2 * Comment # 2 * Comment # 3 * Comment # 3 edited 

我已经在使用

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

<xsl:value-of select="." disable-output-escaping="yes"/>

请告诉我如何在输出中保留CRLF。

2 个答案:

答案 0 :(得分:0)

<col4>中的文字括在<xsl:text>中,它应该保留空格。

答案 1 :(得分:0)

您需要提供更多详细信息 - 如下所示,这不是XSLT进程的固有行为。

XML文件:

<?xml version="1.0" encoding="UTF-8"?>
<col4> 
* Comment # 1
* Comment # 2
* Comment # 2
* Comment # 3
* Comment # 3 edited
</col4>

XSLT样式表:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    exclude-result-prefixes="xs"
    version="2.0">
<xsl:output method="html" />

<xsl:template match="col4">
    <p><xsl:value-of select="." /></p>
</xsl:template>

</xsl:stylesheet>

输出:

<p> 
   * Comment # 1
   * Comment # 2
   * Comment # 2
   * Comment # 3
   * Comment # 3 edited 
</p>