通过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 删除字典中的对应键即可:
del elem.attrib['disabled']in 判断是否存在,避免 KeyErrorif 'disabled' in elem.attrib: del elem.attrib['disabled']
通常要先定位目标节点,再改属性。常用方法有:
find() 或 findall() 按标签名查找:node = root.find('.//button')
nodes = root.findall(".//*[@type='submit']")
for btn in nodes: btn.set('type', 'button')(set() 是 attrib 的快捷写法)不复杂但容易忽略:修改完别忘了写回文件,否则只是内存中改动。