XSLT的number元素如何格式化序号?

来源:建站作者:菲律宾程序员头衔:程序员
导读:本期聚焦于小伙伴创作的《XSLT的number元素如何格式化序号?》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《XSLT的number元素如何格式化序号?》有用,将其分享出去将是对创作者最好的鼓励。

XSLT的number元素专门用于从XML文档中提取节点位置信息,生成符合需求的序号,支持多种格式配置,可满足不同场景下的编号需求。

XSLT的number元素如何格式化序号?

number元素核心属性说明

number元素的属性决定了序号的生成逻辑和最终格式,常用的核心属性如下:

属性名作用说明
level指定序号计算的层级范围,可选值为single、multiple、any,默认是single
count指定需要计数的节点模式,只对符合模式的节点进行编号
from指定编号的起始节点,从该节点之后的符合count条件的节点开始计数
format指定序号的输出格式,支持阿拉伯数字、罗马数字、字母等多种格式

基础序号格式化示例

以下XML文档作为测试数据,包含多层级的书籍章节结构:

<book>
  <chapter>第一章 基础入门</chapter>
  <chapter>
    <section>1.1 环境搭建</section>
    <section>1.2 语法基础</section>
  </chapter>
  <chapter>
    <section>2.1 进阶用法</section>
    <section>2.2 实战案例</section>
  </chapter>
</book>

如果需要给所有<chapter>节点生成阿拉伯数字序号,对应的XSLT代码如下:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <html>
      <body>
        <xsl:apply-templates select="book/chapter"/>
      </body>
    </html>
  </xsl:template>
  
  <xsl:template match="chapter">
    <p>
      <xsl:number count="chapter" format="1"/>
      <xsl:value-of select="."/>
    </p>
  </xsl:template>
</xsl:stylesheet>

上述代码中,<xsl:number>的count属性指定统计chapter节点,format设置为1,输出结果会是1、2、3这样的阿拉伯数字序号。

不同格式序号的配置方法

format属性支持多种格式标识,常见的配置方式如下:

  • format="1":输出阿拉伯数字,如1、2、3
  • format="01":输出两位阿拉伯数字,不足两位补0,如01、02、03
  • format="i":输出小写罗马数字,如i、ii、iii
  • format="I":输出大写罗马数字,如I、II、III
  • format="a":输出小写英文字母,如a、b、c
  • format="A":输出大写英文字母,如A、B、C

如果需要生成大写罗马数字的chapter序号,只需要修改format属性为I即可:

<xsl:template match="chapter">
  <p>
    <xsl:number count="chapter" format="I"/>
    <xsl:value-of select="."/>
  </p>
</xsl:template>

层级序号的实现方式

对于包含子节点的层级结构,需要生成类似1.1、1.2、2.1这样的层级序号,此时需要设置level属性为multiple,同时指定count多类节点:

<xsl:template match="section">
  <p>
    <xsl:number count="chapter|section" level="multiple" format="1.1"/>
    <xsl:value-of select="."/>
  </p>
</xsl:template>

上述代码中,level设置为multiple表示计算多层级的位置,count指定统计chapter和section节点,format设置为1.1表示输出两位层级的序号,最终section节点的输出结果会是1.1、1.2、2.1、2.2这样的格式。

from属性的使用场景

from属性可以指定编号的起始节点,比如需要从第二个chapter节点开始编号,起始序号为1,配置方式如下:

<xsl:template match="chapter[position() > 1]">
  <p>
    <xsl:number count="chapter" from="chapter[2]" format="1"/>
    <xsl:value-of select="."/>
  </p>
</xsl:template>

此时第一个chapter节点不会被编号,第二个chapter节点编号为1,第三个编号为2,符合from属性指定的起始逻辑。

XSLTnumber元素序号格式化xsl_number修改时间:2026-06-11 05:27:32

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。