2025-03-08 09:00:04

在XSLT中生成新行

我想为XSLT中的文本输出生成换行符。什么好主意吗?


当前回答

只需添加这个标签:

<br/>

这对我有用;)。

其他回答

在xsl:output标记中包含属性Method="text",并在xsl中适当的位置在文本内容中包含换行符。如果您希望XSL源代码保持整洁,请使用实体&#10;你想要一条新线。

我最喜欢的方法如下:

<xsl:stylesheet>

<xsl:output method='text'/>

<xsl:variable name='newline'><xsl:text>
</xsl:text></xsl:variable>

<!-- note that the layout there is deliberate -->

...

</xsl:stylesheet>

然后,无论何时你想输出换行符(也许在csv中),你都可以输出如下内容:

<xsl:value-of select="concat(elem1,elem2,elem3,$newline)" />

我在从xml输入输出sql时使用过这种技术。事实上,我倾向于为逗号、引号和换行符创建变量。

<xsl:text xml:space="preserve">
</xsl:text>

我发现了<xsl:text>中的文字换行符和使用&#xA;的文字换行符之间的区别。

虽然文字换行符在我的环境中工作得很好(使用Saxon和默认的Java XSLT处理器),但当在. net环境中运行的另一个组执行代码时,我的代码失败了。

更改为实体(&#xA;)使我的文件生成代码在Java和. net上一致地运行。

此外,文字换行符很容易被ide重新格式化,当文件由“不知情”的人维护时,可能会无意中丢失。

只需添加这个标签:

<br/>

这对我有用;)。