2015-05-20 61 views
0

阵列I有一个要求,其中i具有从XML的每个块计算出的值保存到样可变一个阵列,稍后在我的XSLT代码中使用此数组值进行比较。如何实现在XSLT 1.0

可以在这个人的帮助,我们如何能够在阵列的值保存在XSLT 1.0或有任何其他选项来存储这些值。

谢谢, Mayank

回答

1

有在XSLT没有数组,必须类型字符串,数字,布尔值和复合数据类型的原始值的节点集在XSLT 1.0 XML节点和结果树片段的以及XSLT 2.0中的几个更原始的数据类型以及节点序列和原子项作为复杂数据类型。

因此,如果要将数据存储在XSLT 1.0你将其存储在结果树片段例如

<xsl:variable name="data-rtf"> 
    <item>a</item> 
    <item>b</item> 
</xsl:variable> 

然后进一步处理它需要使用exsl:node-set或类似如在<xsl:variable name="data" select="exsl:node-set($data-rtf)" xmlns:exsl="http://exslt.org/common"/>具有节点集然后可以访问例如$data/item[1]$data/item[2]

使用XSLT 2.0,你不需要exsl:node-set或类似的功能,你可以简单地存储数据作为临时树(片段),并访问使用XPath的节点,因此会使用

<xsl:variable name="data"> 
    <item>a</item> 
    <item>b</item> 
</xsl:variable> 

,然后访问$data/item[1]$data/item[2]

+0

我的要求是,我要计算每个节点的几个值,并在运行时将这些值存储到一个变量,并且在我的XSLT后期比较这些值。我的意思是变量“data-rtf”将具有在运行时期间计算并在处理的后期阶段中使用的值。我还查找了选项来从结果树中读取累加值,但找不到选项。 – user1947768

+0

里面的'的 ...'你可以使用任何XSLT代码在运行时填充它。 –