2012-01-05 63 views
1

XSLT 2.0允许强制将空参数设置为特定数据类型。 XSLT 1.0没有。 (对吗?)但是我需要强制一个空参数作为一个节点集,以便我稍后可以向它添加节点。XSLT 1.0强制数据类型为nodeset

传递一个节点集的第0节点似乎工作:

<xsl:with-param name="topofstack" select="$nodesetB[0]" />

但它是合法的吗?保证工作?是否有一种“正确”的方式来强制一个空参数成为XSLT 1.0中的一个节点集?

回答

2

我需要强制一个空参数作为一个节点集,这样我才能 向它添加节点。

传递一个节点集的第0节点似乎工作:

<xsl:with-param name="topofstack" select="$nodesetB[0]" /> 

我用更短的

/.. 
0

,这样我可以在以后将节点添加到它

那么,XSLT中的值和变量是不可变的,所以这没有多大意义。

但是,传递一个空的节点集作为参数的值肯定是可行的,正如Dimitre所说,这样做的公认惯例是“/ ..”;我也知道使用“@comment()”,尽管有些处理器会在你写这个时产生警告。

+0

我错过了。 “...这样我可以在以后UNION与另一个节点集合。” – JPM 2012-01-05 15:28:25