XML:获取位置计数是一个随机放置多个出现的元素

时间:2014-04-12 10:12:22

标签: xml xslt

我有一个输入xml文件,如下所示:

<p><fig id="23"/><fig id="25"/></p>
<set>
<p><fig id="32"/></p>
<p><fig id="37"/></p>
<set>
<sec><fig id="52"/></sec>

依旧......

正如我们所看到的,元素fig随机放置在文件中的任何位置。我需要将其转换为:

<p><fig>1</fig><fig>2</fig></p>
<set>
<p><fig>3</fig></p>
<p><fig>4</fig></p>
<set>
<sec><fig>5</fig></sec>

我需要从1开始依次给所有figs一个序列号,而不管其父级。请指导我们如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

使用

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="@* | node()">
  <xsl:copy>
    <xsl:apply-templates select="@* | node()"/>
  </xsl:copy>
</xsl:template>

<xsl:template match="fig">
  <xsl:copy><xsl:number level="any"/></xsl:copy>
</xsl:template>

</xsl:stylesheet>