xsl: хранить несколько элементов в переменной или параметре для последующего использования - PullRequest
0 голосов
/ 30 сентября 2011

Мне нужно преобразовать xml в некоторый пользовательский формат xml.

В новом формате у меня будет много узлов sections, и для каждого узла я создаю уникальный идентификатор, используя:

<xsl:attribute name="identifier">
                <xsl:variable name="uid" select="util:randomUUID()"/>A<xsl:value-of select="util:toString($uid)"/>
</xsl:attribute>

Мне нужен способ сохранить все эти идентификаторы в списке или массиве, чтобы я мог ссылаться на них из какого-то другого шаблона и использовать их в цикле for-each.

Есть ли способ сделать это с помощью xsl?

Спасибо за любую помощь

1 Ответ

1 голос
/ 30 сентября 2011

Имейте эти глобально объявленные :

<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()
            "/>
...