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

如何用Python ElementTree移除XML中的description元素?

解决XML移除description元素的错误

问题根源

触发TypeError: remove() argument must be xml.etree.ElementTree.Element, not str的原因有三点:

  • 代码错误获取了rank元素的文本内容(字符串类型),而非目标description元素对象
  • remove()方法仅接受Element类型参数,不能传入字符串
  • 你试图从root节点移除元素,但description的父节点是country,必须从对应country节点中执行移除操作

正确实现代码

for country in root.findall('country'):
    # 获取当前country节点下的description元素对象
    description_elem = country.find('description')
    if description_elem is not None:
        # 从父节点country中移除该元素
        country.remove(description_elem)

tree.write('SampleData.xml')

代码说明

  1. 用root.findall('country')遍历所有国家节点,避免遍历过程中修改XML树结构引发的异常
  2. 对每个country节点,调用find('description')获取对应的元素对象(而非文本内容)
  3. 增加非空判断,避免部分country节点无description时触发报错
  4. 调用父节点country的remove()方法完成元素删除,最后将修改后的XML写入文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 07:10:14