XSL:生成一个自增的全局整数 id

XSL: Generate a global integer id that increments itself

我有一个 XML 格式,我需要通过 XSL 生成它有一个奇怪的怪癖。目标模式中具有 id 属性的每个元素都必须与所有其他 id 属性顺序排列,无论元素名称如何。这是我的意思的一个非常简单的例子:

Input.XML

<list>
  <booklist>
    <book>
  </booklist>
  <cdlist>
    <cd />
    <cd />
  </cdlist>
  <periodicallist>
    <periodical>
  </periodicallist>
</list>

Output.XML

<mediaLibrary>
  <book id="1" />
  <cdList>
    <cd id="2" />
    <cd id="3" />
  </cdList>
  <periodical id="4" />
</mediaLibrary>

我知道 XSL 变量是不可变的,但我对 xsl:number 没有任何好感,尽管我对 XSL 还很陌生。 XSL 中有办法做到这一点吗?

I haven't had any luck with xsl:number

怎么样:

<xsl:number level="any" count="book | cd | periodical"/>