我有一些包含id属性元素的XML文件。我需要从根元素中按正确的顺序计算id值。所以不是这个:
<body>
<p id="1">
<span id="3"/>
</p>
<p/>
<div id="8">
<p id="2"/>
<ul>
<li/>
<li id="9">
<span id="12"/>
</li>
<li/>
<li id="13">
<span id="7"/>
</li>
</ul>
</div>
</body>
我想有这个:
<body>
<p id="1">
<span id="2"/>
</p>
<p/>
<div id="3">
<p id="4"/>
<ul>
<li/>
<li id="5">
<span id="6"/>
</li>
<li/>
<li id="7">
<span id="8"/>
</li>
</ul>
</div>
</body>
答案 0 :(得分:1)
使用身份转换模板加一个id
属性:
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@id">
<xsl:attribute name="id">
<xsl:number count="*[@id]" level="any"/>
</xsl:attribute>
</xsl:template>