Python ElementTree怎么修改XML节点属性

25次阅读

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

Python ElementTree怎么修改XML节点属性

直接通过节点的 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 的快捷写法)

不复杂但容易忽略:修改完别忘了写回文件,否则只是内存中改动。

text=ZqhQzanResources