xsl:变量忽略<br/>

时间:2014-02-12 14:12:17

标签: xslt xslt-1.0

如果我这样做:

<xsl:variable name="something">
  <xsl:value-of select="node1" /><br />
  <xsl:value-of select="node2" /><br />
  <xsl:value-of select="node3" /><br />
  <xsl:value-of select="node4" /><br />
</xsl:variable>

<h1><xsl:value-of select="$something" /></h1>

忽略换行符。是吗?

如果有任何不同,我正在使用xslt 1.0。

提前致谢。

2 个答案:

答案 0 :(得分:4)

您应该在这里使用 xsl:copy-of ,而不是 xsl:value-of ,因为 xsl:value-of 仅输出节点的文本值

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

答案 1 :(得分:2)

您应该使用copy-of代替value-of来维护<br/>。原因是value-of查找您选择的节点的文本,因此如果您想要文本和该节点的元素,则需要复制而不是值。

由于您使用的是XSLT 1.0,因此您可能还需要查看exslt:node-set以更好地处理这样的结果树片段。

作为旁注,h1h2关闭,但无效。希望这只是一个复制和粘贴错误。