untangle库可将XML一键转为Python对象,支持属性式访问节点、方括号取属性、列表式处理重复标签,中文内容用.cdata获取,短横线标签需字典式访问,仅适用于只读、无命名空间的简单XML解析。

untangle 库用起来很简单,核心就是把 XML 文件或字符串一键转成 Python 对象,让你像访问属性一样读取节点和内容,不用写繁琐的解析代码。
安装与基础用法
先用 pip 安装:
pip install untangle然后加载 XML(本地文件或 URL):
import untangleobj = untangle.parse('data.xml') # 从文件
# 或 obj = untangle.parse('https://example.com/feed.xml') # 从网络
XML 中的每个标签会变成对象的属性,嵌套结构自动对应属性链。
立即学习“Python免费学习笔记(深入)”;
读取元素和属性
假设你有如下 XML:
这样就能直接取值:
obj = untangle.parse('book.xml')print(obj.root.book.title.cdata) # 输出:Python Tricks
print(obj.root.book.author.cdata) # 输出:Dan Bader
print(obj.root.book['id']) # 输出:123(用方括号取属性)
处理多个同名子节点
如果 XML 中有重复标签(比如多个
访问方式:
rss = untangle.parse('feed.xml')for item in rss.rss.item:
print(item.title.cdata)
注意:即使只有一个
常见注意事项
untangle 是只读、轻量级解析器,适合结构清晰、不带命名空间的 XML。
- 中文或特殊字符内容通过 .cdata 获取(不是 .text 或 .content)
- 标签名含短横线(如
)会导致属性访问失败,改用字典式访问:obj.root['last-modified'] - 遇到解析错误,检查 XML 是否格式正确(可先用浏览器打开验证)
- 不支持修改 XML 或写回文件,仅用于快速读取
基本上就这些 —— 没有注册处理器,不用写回调,也不用考虑节点类型,适合快速抓数据、读配置、解析 RSS 等简单场景。










