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

如何使用XSLT为person子元素id插入迭代序号

给XML中person元素的id子元素插入递增序号的实现方法

以下是两种高效的实现方式:

方法一:使用XSLT转换

XSLT是处理XML文档的标准工具,适合这类结构化修改需求。创建如下XSLT样式表(命名为add-id.xsl):

<?xml version="1.0" encoding="UTF-8"?>
<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>

    <!-- 匹配person下的id元素,插入递增序号 -->
    <xsl:template match="person/id">
        <id><xsl:value-of select="position()"/></id>
    </xsl:template>
</xsl:stylesheet>

转换命令(以xsltproc为例):

在终端执行以下命令,将源XML(假设名为source.xml)转换为目标XML:

xsltproc add-id.xsl source.xml > result.xml

转换后就能得到你期望的带递增id的XML文档。

方法二:使用Python脚本实现

如果你熟悉Python,可以用内置的xml.etree.ElementTree库来处理:

import xml.etree.ElementTree as ET

# 解析源XML文件
tree = ET.parse('source.xml')
root = tree.getroot()

# 遍历所有person元素,为id赋值递增序号
for index, person in enumerate(root.findall('person'), start=1):
    id_elem = person.find('id')
    id_elem.text = str(index)

# 保存修改后的XML
tree.write('result.xml', encoding='UTF-8', xml_declaration=True)

使用说明:

  1. 将源XML保存为source.xml
  2. 运行上述脚本,会生成带递增id的result.xml

源XML示例:

<persons>
<person>
    <id></id>
    <name>Lisa</name>
</person>
<person>
    <id></id>
    <name>Robin</name>
</person>
<person>
    <id></id>
    <name>Alex</name>
</person>
</persons>

转换后结果:

<persons>
<person>
    <id>1</id>
    <name>Lisa</name>
</person>
<person>
    <id>2</id>
    <name>Robin</name>
</person>
<person>
    <id>3</id>
    <name>Alex</name>
</person>
</persons>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 18:45:37