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

如何使用Python ElementTree修改XML元素?含指定字段修改需求

使用Python ElementTree修改XML元素

首先假设你的XML结构如下(基于需求推断):

<vehicles>
    <car>
        <rego>AD-4214</rego>
        <make>Tata</make>
        <model>Sumo</model>
    </car>
</vehicles>

以下是实现需求的完整代码:

import xml.etree.ElementTree as ET

# 加载XML文件(若处理字符串则用ET.fromstring(xml_str))
tree = ET.parse('input.xml')
root = tree.getroot()

# 定位到rego为AD-4214的车辆节点,修改对应字段
for car in root.findall('car'):
    rego_elem = car.find('rego')
    if rego_elem and rego_elem.text == 'AD-4214':
        # 修改make字段
        make_elem = car.find('make')
        if make_elem:
            make_elem.text = 'Nissan'
        # 修改model字段
        model_elem = car.find('model')
        if model_elem:
            model_elem.text = 'Skyline'

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

关键步骤说明

  • 加载XML:用ET.parse()读取本地XML文件;如果是内存中的XML字符串,替换为root = ET.fromstring(xml_content)。
  • 精准定位目标节点:通过遍历car节点,检查rego值是否为AD-4214,确保只修改目标车辆的信息。
  • 修改元素文本:找到make和model节点后,直接赋值text属性完成修改。
  • 保存结果:tree.write()方法支持指定编码和XML声明,避免乱码或格式问题。

如果你的XML结构更简单(比如没有vehicles父节点),可以简化定位逻辑:

root = ET.parse('input.xml').getroot()
if root.find('rego').text == 'AD-4214':
    root.find('make').text = 'Nissan'
    root.find('model').text = 'Skyline'
tree.write('output.xml')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 19:27:16