17370845950

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

untangle 库用起来很简单,核心就是把 XML 文件或字符串一键转成 Python 对象,让你像访问属性一样读取节点和内容,不用写繁琐的解析代码。

安装与基础用法

先用 pip 安装:

pip install untangle

然后加载 XML(本地文件或 URL):

import untangle
obj = untangle.parse('data.xml') # 从文件
# 或 obj = untangle.parse('https://example.com/feed.xml') # 从网络

XML 中的每个标签会变成对象的属性,嵌套结构自动对应属性链。

读取元素和属性

假设你有如下 XML:



Python Tricks
Dan Bader

这样就能直接取值:

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 中有重复标签(比如多个 ),untangle 会自动转成 Python 列表:


Post 1
Post 2

访问方式:

rss = untangle.parse('feed.xml')
for item in rss.rss.item:
print(item.title.cdata)

注意:即使只有一个 rss.rss.item 仍是列表,所以统一用 for 循环最安全。

常见注意事项

untangle 是只读、轻量级解析器,适合结构清晰、不带命名空间的 XML。

  • 中文或特殊字符内容通过 .cdata 获取(不是 .text 或 .content)
  • 标签名含短横线(如 )会导致属性访问失败,改用字典式访问:obj.root['last-modified']
  • 遇到解析错误,检查 XML 是否格式正确(可先用浏览器打开验证)
  • 不支持修改 XML 或写回文件,仅用于快速读取

基本上就这些 —— 没有注册处理器,不用写回调,也不用考虑节点类型,适合快速抓数据、读配置、解析 RSS 等简单场景。