Gre*_*tes 13 xml ant xslt whitespace xslt-1.0
我有一个XSL样式表,其中包含如下xsl:text节点中的内容:
<xsl:text>
foo
bar
baz
</xsl:text>
Run Code Online (Sandbox Code Playgroud)
样式表本身是一个带有"unix-style"换行符终结符的文本文件.我在Windows上调用此样式表以及类似unix的平台.将输出符合调用它的平台的约定会很好.
当我在Windows上运行此样式表时,输出具有除xsl:text节点内容之外的所有内容的回车符/换行符对.
我是否可以指示XSLT处理器将xsl:text节点内容中的换行符转换为特定于平台的行尾?
更多上下文:我正在调用Apache Ant 1.7.1 XSLT任务中的样式表,如下所示:
<xslt in="in.xml" out="out.xml" style="stylesheet.xsl"/>
Run Code Online (Sandbox Code Playgroud)
样式表标题目前如下所示:
<?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>
Run Code Online (Sandbox Code Playgroud)
你可以为样式表定义一个参数,如下所示:
<xsl:param name="br">
<xsl:text> </xsl:text>
</xsl:param>
Run Code Online (Sandbox Code Playgroud)
并在Ant脚本中使用嵌套的param元素传入适当的行尾字符.当然,这个例子中的默认值是Unix风格的换行符.我想要输出值,你必须使用:
<xsl:copy-of select="$br"/>
Run Code Online (Sandbox Code Playgroud)
它很冗长,但它确实有效.
我不确定如何自动执行正确的换行符(这可能取决于您正在使用的 xslt 处理器),但您也许可以在文本节点的内容中强制换行符。\r\n 是 
 
, \n 是
,例如您可以使用:
<xsl:text>foo
bar
</xsl:text>以获得您正在寻找的输出。
| 归档时间: |
|
| 查看次数: |
22556 次 |
| 最近记录: |