XPath
保留復(fù)雜的層級(jí)關(guān)系
謂語
嵌在[]中用來插著某個(gè)特定的節(jié)點(diǎn)
路徑表達(dá)式(類似于文件操作)
Python處理xml的方法
DOM把整個(gè)xmL讀入內(nèi)存解析為樹占用內(nèi)存解析很慢而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()
定義三個(gè)函數(shù)進(jìn)行解析
print ('element: %s'% name)
with open(' ','r') as f:
parser.Parse(f.read())
層級(jí)簡(jiǎn)單使用dom,層級(jí)復(fù)雜使用sax
sax處理大的xml因?yàn)樯蒬om樹的內(nèi)存占有很大