我有一个要求,我必须将每个XML块的计算值保存到类似变量的数组中,我将在稍后的XSLT代码中使用此数组值进行比较。
有人可以帮助我们如何在XSLT 1.0中保存数组中的值,或者是否有其他选项来存储这些值。
谢谢, Mayank
答案 0 :(得分: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]
。