xml - 用 xsl :text? 解释换行符

标签 xml xslt ant xslt-1.0 whitespace

我有一个 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>&#10;</xsl:text>
</xsl:param>

并通过在 Ant 脚本中使用嵌套的 param 元素来传递适当的行尾字符。当然,本例中的默认值是 Unix 风格的换行符。我认为要输出值,您必须使用:

<xsl:copy-of select="$br"/>

它很冗长,但它确实有效。

关于xml - 用 xsl :text? 解释换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/185101/

相关文章:

java - Android : How to Store the Value for a Variable in Strings. xml通过编码

html - XSLT 插入 html 内容

xml - 更改元素名称的样式表

java - IntelliJ "provided"范围的 Ant 等效项

运行ant时出现java.lang.NoClassDefFoundError

Ant 解压缩任务并且仅基于另一个目录提取文件

android - 为 Android 解析 RSS 提要

java - 如何为给定 xml 的客户端 saaj 创建 SOAP 请求

xml - 我如何选择我当前流程元素的后续兄弟,直到它满足使用 xslt 2.0 的 foreach 中的条件?

xslt - 使用 XSLT 处理循环依赖