untangle 是纯 Python 轻量级 XML 解析库,支持点号访问元素、属性直取、同名节点自动转列表及字符串解析;不支持命名空间和 XPath,适用于结构清晰的扁平 XML 场景。
untangle 是一个轻量级 Python 库,专为快速解析 XML 并以属性方式访问元素而设计。它不依赖外部 C 库(如 libxml2),纯 Python 实现,安装简单,适合结构清晰、嵌套不深的 XML 场景。
通过 pip 安装:
pip install untangle
加载 XML 后,根节点自动转为对象,子元素可通过点号(.)直接访问:
例如,对如下 XML:
代码可写为:
obj = untangle.parse('data.xml')
print(obj.root.name.cdata) # 输出:Alice
print(obj.root
.age.cdata) # 输出:30
XML 中的属性(attribute)会作为对象属性直接暴露;嵌套层级对应点号链式调用:
示例 XML:
对应访问方式:
当某标签出现多次(如
XML 示例:
访问方式:
若 XML 来自 API 响应或变量字符串,用 untangle.parse_string():
xml_str = '
obj = untangle.parse_string(xml_str)
print(obj.data.value.cdata) # 输出:42
untangle 不做命名空间处理,也不支持 XPath 查询;遇到复杂 XML(如混合文本+标签、CDATA 块、注释等)可能无法准确还原结构。它适合“结构规整、读取为主”的场景——比如配置文件、RSS 简单条目、API 返回的扁平数据。
如果 XML 层级深、含命名空间或需修改/生成,建议换用 xml.etree.ElementTree 或 lxml。