You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XSL <xsl:number>返回异常值,如何为指定XML元素生成连续字母编号?

解决TEI元素连续字母编号异常问题

问题出在<xsl:number>的count属性设置上:你用了count=".",这会统计所有节点(包括文本节点、空白节点、属性节点等),而非仅目标的tei:sic、tei:del、tei:surplus元素,导致编号跳过大量非目标节点,出现h、n、t这类跳号结果。

修正方案

修改count属性,明确指定只统计这三类TEI元素,确保计数连续:

<xsl:template match="tei:sic | tei:del | tei:surplus">
  <xsl:copy>
    <xsl:attribute name="n">
      <!-- 仅计数目标TEI元素,生成连续字母序列 -->
      <xsl:number count="tei:sic | tei:del | tei:surplus" format="a" level="any"/>
    </xsl:attribute>
    <xsl:apply-templates select="@* | node()"/>
  </xsl:copy>
</xsl:template>

参数说明

  • count="tei:sic | tei:del | tei:surplus":限定计数范围仅为这三个目标元素,排除其他无关节点干扰
  • format="a":指定输出小写字母编号(a、b、c……z、aa、ab……)
  • level="any":遍历整个文档树进行计数,不受元素嵌套层级影响。如果需要在特定父元素范围内计数,可改为level="single"(当前父元素下)或level="multiple"(多层级)

内容的提问来源于stack exchange,提问作者jbrehr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 00:00:56