使用 lxml.objectify 与 Python 解析 XML

主要观点:几年前开始关于 XML 解析的系列文章,涵盖 lxml 的[etree]和 Python 内置的[minidom]库,最近发现 lxml 的 objectify 子包并决定研究,认为其比 etree 更“Pythonic”,通过示例展示 objectify 的使用。
关键信息:

  • 提供的代码可解析和修改 XML,如通过objectify.fromstring解析 XML,利用root.attrib获取元素属性,通过点号获取子标签元素值,使用iterchildren遍历子元素,可改变元素值和添加新元素。
  • 使用 objectify 会添加注释如<em>xmlns:py="http://codespeak.net/lxml/objectify/pytype" py:pytype="str"</em>,可通过etree.cleanup_namespaces(root)`去除,也可使用“objectify.deannotate(root)”但示例中未成功,保存新 XML 需使用 lxml 的 etree 模块转换为字符串。
    重要细节:
  • 示例中使用的 XML 内容为特定格式的预约信息。
  • 代码中有详细的注释解释各部分功能和用法。
  • 展示了对 XML 进行各种操作的代码示例,包括获取属性、遍历元素、修改元素值和添加新元素等。
阅读 12
0 条评论