以下XSLT代码起作用:
<xsl:variable name="ret"> RET </xsl:variable>
<xsl:value-of select="$ret" disable-output-escaping="yes"/>它输出"RET“。但是,此代码不像预期的那样工作:
<xsl:variable name="ret"> <RET/> </xsl:variable>
<xsl:value-of select="$ret" disable-output-escaping="yes"/>我希望输出是<RET/>。
我这样做是为了将"xsl:apply-templates“的输出捕获到变量中。"xsl:apply-templates“的输出可能包括HTML标记(例如blah、blah)。我希望我可以将输出存储到一个变量中,并在afterworlds中进行一些处理。
发布于 2020-11-03 06:18:18
xsl:value-of指令创建一个文本节点。它通过将所选内容转换为字符串来做到这一点。变量包含一个没有字符串的空元素--值--并将其转换为字符串会导致空字符串。
若要将变量内容传递给没有转换的输出树,请使用xsl:copy-of指令。
在你最初的问题中,你写道:
,我希望输出是
"<RET/>"。
这表明您认为变量包含字符串 "<RET/>",它可以通过将元素复制到输出而不转义它来创建元素。但是,为了创建这样的变量,您必须使用:
<xsl:variable name="ret"><RET></xsl:variable>无论如何,这不是一个创建输出的好方法。
发布于 2020-11-03 06:12:57
使用xsl:copy-of而不是xsl:value-of。
https://stackoverflow.com/questions/64657443
复制相似问题