千家信息网

python如何操作xml

发表于:2025-01-26 作者:千家信息网编辑
千家信息网最后更新 2025年01月26日,小编给大家分享一下python如何操作xml,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!说明1、DOM会将整个XML读入内存,解析为树,所以占用内存大,解析慢。它的优点是可以随意遍
千家信息网最后更新 2025年01月26日python如何操作xml

小编给大家分享一下python如何操作xml,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

说明

1、DOM会将整个XML读入内存,解析为树,所以占用内存大,解析慢。

它的优点是可以随意遍历树的节点。

2、SAX是一种流模式,边读边分析,占用内存小,分析快,缺点是需要自己处理事件。

一般情况下,SAX优先考虑,因为DOM占用内存太多。

实例

from xml.parsers.expat import ParserCreate class DefaultSaxHandler(object):    def start_element(self, name, attrs):        print('sax:start_element: %s, attrs: %s' % (name, str(attrs)))     def end_element(self, name):        print('sax:end_element: %s' % name)     def char_data(self, text):        print('sax:char_data: %s' % text) xml = r'''
  1. Python
  2. Ruby
''' handler = DefaultSaxHandler()parser = ParserCreate()parser.StartElementHandler = handler.start_elementparser.EndElementHandler = handler.end_elementparser.CharacterDataHandler = handler.char_dataparser.Parse(xml) //测试结果sax:start_element: ol, attrs: {}sax:char_data: sax:char_data: sax:start_element: li, attrs: {}sax:start_element: a, attrs: {'href': '/python'}sax:char_data: Pythonsax:end_element: asax:end_element: lisax:char_data: sax:char_data: sax:start_element: li, attrs: {}sax:start_element: a, attrs: {'href': '/ruby'}sax:char_data: Rubysax:end_element: asax:end_element: lisax:char_data: sax:end_element: ol

看完了这篇文章,相信你对"python如何操作xml"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

0