python如何解析xml

介绍

今天就跟大家聊聊有关python如何解析xml,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

python的标准库中,提供了6种可以用于处理xml的包。

<强> (1)xml.dom

xml。W3C dom实现的是制定的dom API。如果你习惯于使用dom API或者有人要求这这样做,可以使用这个包。不过要注意,在这个包中,还提供了几个不同的模块,各自的性能有所区别。

dom解析器在任何处理开始之前,必须把基于XML文件生成的树状数据放在内存,所以dom解析器的内存使用量完全根据输入资料的大小。

<强> (2)xml.dom.minidom

xml.dom。minidom是DOM API的极简化实现,比完整版的DOM要简单的多,而且这个包也小的多。那些不熟悉DOM的朋友,应该考虑使用xml.etree.ElementTree模块。据lxml的作者评价,这个模块使用起来并不方便,效率也不高,而且还容易出现问题。

<强> (3)xml.dom.pulldom

与其他模块不同,xml.dom。pulldom模块提供的是一个“拉解析器”,其背后的基本概念指的是从XML流中把事件,然后进行处理,虽然与SAX一样采用事件驱动模型(事件驱动处理模型),但是不同的是,使用拉解析器时,使用者需要明确地从XML流中把事件,并对这些事件遍历处理,直到处理完成或者出现错误。

拉解析(解析)是近来兴起的一种XML处理趋势。此前诸如SAX和DOM这些流行的XML解析框架,都是基于推的,也就是说对解析工作的控制权,掌握在解析器的手中。

<强> SAX(4)

XML。sax模块实现的是sax API,这个模块牺牲了便捷性来换取速度和内存占用.SAX是简单的API用于XML的缩写,它并不是由W3C官方所提出的标准。它是事件驱动的,并不需要一次性读入整个文档,而文档的读入过程也就是sax的解析过程。所谓事件驱动,是指一种基于回调(回调)机制的程序运行方法。

<强> (5)xml.parser.expat

xml.parser.expat提供了对C语言编写的外籍人士解析器的一个直接的,底层API接口.expat接口与sax类似,也是基于事件回调机制,但是这个接口并不是标准化的,只适用于海外库。

外籍人士是一个面向流的解析器。您注册的解析器回调(或处理程序)功能,然后开始搜索它的文档。当解析器识别该文件的指定的位置,它会调用该部分相应的处理程序(如果您已经注册的一个)。该文件被输送到解析器,会被分割成多个片断,并分段装到内存中。因此外籍人士可以解析那些巨大的文件。

<强> (6)xml.etree.ElementTree(以下简称ET)

xml.etree.ElementTree模块提供了一个轻量级,神谕的的API,同时还有一个高效的C语言实现,即xml.etree.cElementTree。与DOM相比,ET的速度更快,API使用更直接、方便。与sax相比,等。iterparse起初函数同样提供了按需解析的功能,不会一次性在内存中读入整个文档.ET的性能与SAX模块大致相仿,但是它的API更加高层次,用户使用起来更加便捷。

建议:在使用Python进行XML解析时,首选使用等模块,除非你有其他特别的需求,可能需要另外的模块来满足。

看完上述内容,你们对Python如何解析XML有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

python如何解析xml