我需要将xml转换为某种自定义xml格式。
在新格式中,我将拥有许多sections
节点,并且对于每个节点,我使用以下方法创建唯一ID:
<xsl:attribute name="identifier">
<xsl:variable name="uid" select="util:randomUUID()"/>A<xsl:value-of select="util:toString($uid)"/>
</xsl:attribute>
我需要一种方法将所有这些ID存储在列表或数组中,以便我可以从其他模板中引用它并在for-each循环中使用它们。
有没有办法用xsl做到这一点?
感谢您的帮助
答案 0 :(得分:1)
将这些全局声明:
<xsl:variable name="vrtfRandList">
<xsl:for-each select="yourNodeSet">
<rand><xsl:value-of select="util:randomUUID()"/></rand>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="vRandlist" select="ext:node-set($vrtfRandList)/*"/>
然后再使用:
$vRandlist[$k]
使用XSLT 2.0 :
<xsl:variable name="vRandlist" as="xs:integer*"
select="for $i in 1 to count(yourNodeSet)
return
util:randomUUID()
"/>