gpt4 book ai didi

python - 获取 XML 文档的 DOM 树

转载 作者:数据小太阳 更新时间:2023-10-29 01:58:23 28 4
gpt4 key购买 nike

有谁知道我如何在 Python 中获取 XML 文件的 DOM 实例(树)。我正在尝试将两个 XML 文档相互比较,它们可能具有不同顺序的元素和属性。我该怎么做?

最佳答案

就个人而言,只要有可能,我都会从 elementtree 开始(最好是 Python 标准库附带的 C 实现,或 lxml 实现,但这本质上只是速度更快的问题)。它不是符合标准的 DOM,但以更 Pythonic 和更方便的方式保存相同的信息。您可以从调用 xml.etree.ElementTree.parse 开始,它获取 XML 源并返回一个元素树;在两个源上执行此操作,在每个元素树上使用 getroot 获取其根元素,然后从根元素开始递归比较元素。

元素的子元素形成一个序列,在元素树中就像在标准 DOM 中一样,这意味着它们的顺序被认为是重要的;但是很容易从它们中创建 Python 集(或者如果重复在您的用例中很重要,但顺序不重要,则需要付出更多的努力,某种类型的“多集”)以进行更宽松的比较。给定元素的属性甚至更容易,其中唯一性得到保证并且顺序在语义上不相关。

是否有某些特定原因需要标准 DOM 而不是元素树之类的替代容器,或者您只是在一般意义上使用术语 DOM 这样元素树就可以了吗?

过去我使用 PyRXP 也取得了不错的效果,它使用比 ElementTree 更明显和更简单的表示。然而,那是多年以前的事了;关于今天的 PyRXP 与 lxml 或 cElementTree 的比较,我没有最近的经验。

关于python - 获取 XML 文档的 DOM 树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1294654/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com