我有一个 XSL 样式表,其内容位于 xsl:text
节点中,如下所示:
<xsl:text>
foo
bar
baz
</xsl:text>
样式表本身是一个带有“unix 风格”换行符的文本文件。我在 Windows 和类 unix 平台上调用这个样式表。如果输出符合调用它的平台的约定,那就太好了。
当我在 Windows 上运行此样式表时, xsl:text
节点的内容除外,所有内容的输出都有回车符/换行符对。
我可以指示 XSLT 处理器将 xsl:text
节点内容中的换行符转换为平台特定的行尾吗?
更多上下文:我从 Apache Ant 1.7.1 XSLT task 调用样式表像这样:
<xslt in="in.xml" out="out.xml" style="stylesheet.xsl"/>
样式表标题当前如下所示:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xalan="http://xml.apache.org/xslt"
exclude-result-prefixes="xalan">
<!-- contents elided -->
</xsl:stylesheet>
最佳答案
您可以像这样为样式表定义一个参数:
<xsl:param name="br">
<xsl:text> </xsl:text>
</xsl:param>
并通过在 Ant 脚本中使用嵌套的 param 元素来传递适当的行尾字符。当然,本例中的默认值是 Unix 风格的换行符。我认为要输出值,您必须使用:
<xsl:copy-of select="$br"/>
它很冗长,但它确实有效。
关于xml - 用 xsl :text? 解释换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/185101/