python操作xml的两种方法
发布时间:2024-07-04 14:42:33

说明
1、DOM将整个XML读入内存,分析为树,因此占用内存大,分析慢。
它的优点是可以随意遍历树木的节点。
2、SAX是一种流动模式,边读边分析,占用内存小,分析快,缺点是需要自己处理事件。
一般来说,SAX优先考虑,因为DOM占用了太多的内存。
实例
fromxml.parsers.expatimportParserCreate
classDefaultSaxHandler(object):
defstart_element(self,name,attrs):
print('sax:start_element:%s,attrs:%s'%(name,str(attrs)))
defend_element(self,name):
print('sax:end_element:%s'%name)
defchar_data(self,text):
print('sax:char_data:%s'%text)
xml=r'''<?xmlversion="1.0"?>
<ol>
<li><ahref="/python">Python</a></li>
<li><ahref="/ruby">Ruby</a></li>
</ol>
'''
handler=DefaultSaxHandler()
parser=ParserCreate()
parser.StartElementHandler=handler.start_element
parser.EndElementHandler=handler.end_element
parser.CharacterDataHandler=handler.char_data
parser.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:Python
sax:end_element:a
sax:end_element:li
sax:char_data:
sax:char_data:
sax:start_element:li,attrs:{}
sax:start_element:a,attrs:{'href':'/ruby'}
sax:char_data:Ruby
sax:end_element:a
sax:end_element:li
sax:char_data:
sax:end_element:ol以上是python操作xml的两种方法,希望对大家有所帮助。更多Python学习指导:python基础教程
本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。
下一篇 python方差检验是什么意思
