XPath和SAX
2019-02-20 本文已影响2人
一月芷
XPath
保留复杂的层级关系
谓语
嵌在[]中用来插着某个特定的节点
路径表达式(类似于文件操作)
Python处理xml的方法
DOM把整个xmL读入内存解析为树占用内存解析很慢而SAX流模式边度边解析
import string
from xml.parsers.expat import ParserCreate
class DefaultSaxHandler:
def start_element(self,name, attr):
self.name =name
print ('element:%s,attrs:%s' %(name ,str(attrs)))
def end_element(self,name):
print ('end elements:%s'%name)
def char_data(self,text):
if text.strip():
print("%s's text is %s"%(self.name,text)
handler = DefaultSaxHandler()
parser = ParserCreate()
定义三个函数进行解析
print ('element: %s'% name)
with open(' ','r') as f:
parser.Parse(f.read())
层级简单使用dom,层级复杂使用sax
sax处理大的xml因为生成dom树的内存占有很大