在xsl变量中存储html标记

时间:2012-03-28 12:16:37

标签: xslt xslt-1.0

很抱歉,如果这是一个愚蠢的问题,但是可以在xsl 1.0变量中存储和检索HTML代码段吗? EG:

<xsl:variable name="something"><p>Hi there</p><p>How are you today?</p></xsl:variable>

<xsl:value-of disable-output-escaping="yes" select="$something"/>

就在我尝试时,它似乎剥离了HTML标签。感谢。

2 个答案:

答案 0 :(得分:9)

您需要使用<xsl:copy-of select="$something"/>代替xsl:value-of

答案 1 :(得分:3)

我将添加一些关于发生了什么的解释:)

你没有得到html标签的原因是$ something变量包含一个dom片段,而不是一个字符串:value-of元素以与字符串相同的方式提取节点的内容()函数,所以不会序列化节点。

相反,这将提供您拥有的html字符串的字符串表示形式,然后您可以使用value-of和disable-output-escaping将其打印出来:

<xsl:variable name="something"><![CDATA[<p>Hi there</p><p>How are you today?</p>]]></xsl:variable>

(参见https://msdn.microsoft.com/en-us/library/ms256181(v=vs.110).aspx&#34;结果转换为字符串,如通过调用string()函数&#34;)

相关问题