DOM解析案例:
from xml.dom.minidom import parse #得到整个DOM文档树 doc=parse("persons.xml") #得到根节点 root=doc.documentElement persons=root.getElementsByTagName("person") for p in persons: print(p.getElementsByTagName("name")[0].childNodes[0].data,end=" ") print(p.getElementsByTagName("age")[0].childNodes[0].data,end=" ") print(p.getElementsByTagName("sex")[0].childNodes[0].data)
sax解析案例:
from xml.sax import ContentHandler from xml.sax import parse class xixi(ContentHandler): def __init__(self,): self.tag="" self.name="" self.age="" self.sex="" def startElement(self, name, attrs): self.tag=name def characters(self, content): if self.tag=="bname": self.name=content if self.tag=="price": self.age=content if self.tag=="author": self.sex=content def endElement(self, name): if self.tag=="bname": print(self.name,end="\t") if self.tag=="price": print(self.age,end="\t") if self.tag=="author": print(self.sex) self.tag="" baibai=xixi() parse("ben.xml",baibai)try解析案例:
方法 作用
parse(xmlfile) 加载XML文件
frommstring(xmltext) 加载XML文件
findall() 获取指定的所有节点
find() 获取指定的节点
getchildren() 获取儿子节点
gettiterator() 获取指定所有节点,与findall()类似
from xml.etree.cElementTree import * root=parse("persons.xml") persons=root.findall("person") for p in persons: print(p.find("name").text,end=" ") print(p.find("age").text,end=" ") print(p.find("sex").text)