【问题标题】:passing the line break HTML element to XSL将换行 HTML 元素传递给 XSL
【发布时间】:2013-12-18 22:51:46
【问题描述】:

我有一个方法 methodA(),它返回一个元素的数组列表。现在我正在尝试使用 XSL 准备 HTML 报告。

这是我正在做的事情:

首先我正在为我的 XSL 文件准备一个 XML。假设我正在创建一个文本节点:

Element unusedX = docforXSL.createElement("Unused");
unusedX.appendChild(docforXSL.createTextNode(StringUtils.join(methodA().iterator(), ",")));   

我的 XML 看起来像

<Unused>arraylist elements separated by commas</Unused>

这里我使用 Commons.lang StringUtils 的 join() 方法,它以第二个参数作为分隔符。现在我使用 comma(,) 作为分隔符。我将呈现此节点的 XSL 代码是:

<td align = "center"><xsl:value-of select="Unused"/></td>

在这里,我将在报告的列中获取我的数组列表元素,用逗号分隔。

在我的 HTML 报告中,我希望每个 arraylist 元素位于不同的行(换行符)上,而不是用逗号分隔。

如果我将 HTML 换行符 (br) 或 \n 作为第二个参数,它不会在 HTML 文件中正确呈现它们。

请多指教!!!

【问题讨论】:

    标签: java html xslt-2.0


    【解决方案1】:

    .createTextNode 将文本视为纯文本,而不是 HTML。

    请看Javascript, trying to add linebreak inside create text node method

    【讨论】:

    • 嗨,Ross,我正在使用 Java 和 XSL 即时完成所有这些工作。我不确定,但我怀疑它在这里是否也能起到同样的作用。
    【解决方案2】:

    您可以先使用 XSL 将 tokenize 的值 Unused 然后 iterate 用于标记化创建的序列并添加换行符。
    XSL: Construct an Array from a Delimited String 的答案包含一些很好的例子,展示了如何进行这种转换。

    【讨论】:

    • 我正在使用 Java 和 XSL 即时完成所有这些工作。是否可以在我的 XSL 文件中添加一些函数,以便它将我从 Java 文件传递​​的文本(分隔符)解释为换行符并且可以为我解决问题?
    • 你有什么特殊原因为什么要把分隔符当作换行符吗?如果您可以通过拆分字符串并迭代值来使用 XSL 实现这一点,它对您有影响吗?
    • 不,我只是在想是否可以这样做。但是现在我更改了 Java 代码,它创建的文本节点数等于数组列表中的元素数。因此,我现在可以很容易地在使用 XSL 的元素之间换行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-08
    • 2020-06-29
    • 2021-05-16
    • 1970-01-01
    • 2017-07-29
    • 1970-01-01
    相关资源
    最近更新 更多