Python第九节

第九节

  1. doc=parse(filename)
  2. Root=doc.documentElement
  3. Movies=root.getElementsByTagName(“movie”)
  4. For movie in movies:

       获取movie的每个子节点

       获取子节点的值 childNodes[0].data

characters(content)方法

调用时机:

从行开始,遇到标签之前,存在字符,content的值为这些字符串。

从一个标签,遇到下一个标签之前, 存在字符,content的值为这些字符串。

从一个标签,遇到行结束符之前,存在字符,content的值为这些字符串。

标签可以是开始标签,也可以是结束标签。

startDocument()方法

文档启动的时候调用。

endDocument()方法

解析器到达文档结尾时调用。

startElement(name, attrs)方法

遇到XML开始标签时调用,name是标签的名字,attrs是标签的属性值字典。

endElement(name)方法

遇到XML结束标签时调用。

 

例:

 

 from xml.sax import  parse
from xml.sax import ContentHandler

class Student:
def __init__(self,name=None,age=None,sex=None):
self.name=name
self.age=age
self.sex=sex
def __str__(self):
return self.name+","+str(self.age)+self.sex
students=[]
class saxdemo(ContentHandler):
def startDocument(self,student=None):
self.student=student
def endDocument(self):
print("endDocunment...")
def startElement(self, name, attrs):
if name=='student':
self.student=Student()
print("startElement",name)
def endElement(self, name):
if name=='name':
self.student.name=self.tag
if name=='age':
self.student.age=self.tag
if name=='sex':
self.student.sex=self.tag
if name=='student':
students.append(self.student)

def characters(self, content):
self.tag=content
print("characters",content)
parse("student.xml",saxdemo())

 

猜你喜欢

转载自www.cnblogs.com/TreasureQiu/p/9196893.html