通过attrib字典可直接修改XML节点属性:赋值更新单个属性(如elem.attrib['id']='new_id'),update()批量设置,del删除属性;需先定位节点(find/findall/XPath),最后调用ET.write()保存。

直接通过节点的 attrib 字典修改即可,这是最常用也最直接的方式。
修改单个属性值
每个 Element 对象都有一个 attrib 属性,类型是普通字典(dict),可以直接赋值或更新:
- 用键名直接赋新值:
elem.attrib['id'] = 'new_id' - 如果属性不存在,会自动添加;如果存在,则覆盖原值
- 注意:修改后需调用
ET.write()才能保存到文件
批量更新多个属性
可以用 update() 方法一次设置多个属性:
elem.attrib.update({'class': 'active', 'data-type': 'user'})- 也可以传入另一个字典、关键字参数,或可迭代的键值对
- 适合初始化或重置一组属性,比逐个赋值更简洁
删除某个属性
直接用 del 删除字典中的对应键即可:
立即学习“Python免费学习笔记(深入)”;
del elem.attrib['disabled']- 删除前建议先用
in判断是否存在,避免 KeyError - 例如:
if 'disabled' in elem.attrib: del elem.attrib['disabled']
查找并修改特定节点的属性
通常要先定位目标节点,再改属性。常用方法有:
- 用
find()或findall()按标签名查找:node = root.find('.//button') - 用 XPath 支持更灵活的条件:
nodes = root.findall(".//*[@type='submit']") - 遍历所有匹配节点,逐一修改:
for btn in nodes: btn.set('type', 'button')(set()是attrib的快捷写法)
不复杂但容易忽略:修改完别忘了写回文件,否则只是内存中改动。










