如何设置XSLT变量以包含精确的xml数据

时间:2010-10-20 13:43:57

标签: xslt

我想知道如何将xml数据存储在另一个变量中。

这可行($ oldvariable包含xml数据):

<xsl:variable name="newvariable" select="$oldvariable"/>

但这不起作用(可能是因为有经验的XSLT编码器的一些明显原因):

<xsl:variable name="newvariable">
 <xsl:copy-of select="$oldvariable"/>
</xsl:variable>

如何让后者存储确切的可变数据?

我需要那个构造,因为我真的使用了:

<xsl:variable name="newvariable">
<xsl:choose>
 <xsl:when test="some-test">
  <xsl:copy-of select="$oldvariable"/>
...

非常感谢!

1 个答案:

答案 0 :(得分:3)

这是FAQ:在XSLT 1.0中,无论何时使用内容模板声明变量/参数(不带@select),结果类型都是结果树片段。

然后,您不能将RTF用作/步操作符的左手。

那么,如何根据条件将变量声明为两个节点集之一?

<xsl:variable name="newvariable" select="$oldvariable[$condition]|
                                         $othernodeset[not($condition)]"/>