将换行符HTML行为传递给XSL

时间:2013-12-18 22:51:47

标签: java html xslt-2.0

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

这是我正在做的事情:

首先,我正在为我的XSL文件准备XML。我正在创建一个textnode:

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()方法,它将第二个参数作为separator.Right现在我使用逗号(,)作为separator.My XSL代码将呈现此节点:

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

在这里,我将在报告的一列中用逗号分隔我的arraylist元素。

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

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

请咨询!!!

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

您可以使用XSL首先tokenize Unused以及iterate的值,而不是标记化创建的序列,并添加换行符。
XSL: Construct an Array from a Delimited String的答案包含一些很好的例子,说明如何进行这种转换。