Python的lxml.objectify怎么处理重复标签

admin 百科 14
lxml.objectify将重复标签自动转为列表,单个标签为单个对象,访问前需用isinstance或getattr检查存在性与类型,推荐统一转为列表处理以避免AttributeError。

Python的lxml.objectify怎么处理重复标签-第1张图片-佛山资讯网

lxml.objectify 对重复标签的默认处理是把它们转成 Python 列表(list),而不是单个对象 —— 这是它和 etree 的关键区别之一,也是你“能直接用点号取值”的前提。

重复标签自动转为列表

比如 XML 中有多个同名子元素:

<root>
  <item>A</item>
  <item>B</item>
  <item>C</item>
</root>

登录后复制

用 objectify 解析后:
root = objectify.fromstring(xml)
root.item 就是一个包含 3 个 StringElementlist,你可以用索引访问:root.item[0]root.item[1] 等。

判断是否为重复标签(即是否是列表)

不能靠名字猜,得实际检查类型:

立即学习“Python免费学习笔记(深入)”;

标签: python 区别

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~