解析xml

sax解析xml例如:

import xml.sax  #导入xml.sax包
from xml.sax import parse  #导入parse包
try:
    import xml.etree.cElementTree as ET
except ImportError:
    import xml.etree.ElementTree as ET
class student(object):  #定义个学生类并继承obje
    def __int__(self,stuname=None,stuage=None,stusex=None):
        self.stuname=stuname
        self.stuage=stuage
        self.stusex=stusex
    def __str__(self):  
        return "姓名:{0},年龄:{1}岁,性别:{2}".format(self.stuname,self.stuage,self.stusex)
stu = []#定义一个空列表

使用sax解析xml文档

class saxpar(xml.sax.ContentHandler):  #创建一个saxpar类
    def __init__(self,student=None,tag=None):
        self.student=student
    def startDocument(self):
        print("=====开始=====")
    def startElement(self, name,attrs):
        if name=="student":
           self.student=student()
        self.tag=name
    def characters(self, content):
        if self.tag=="stuname":
           self.student.stuname=content
        elif self.tag=="stuage":
            self.student.stuage=content
        elif self.tag=="stusex":
            self.student.stusex=content
    def endElement(self, name):
        if name=="student":
            stu.append(self.student)
            self.student=None
        self.tag=None
    def endDocument(self):
        print("=====结束=====")
parse("student.xml",saxpar())

遍历里面每个元素

for student in stu:
    print(student)

元素树解析xml

打开一个xml文件并找到里面所有的节点(地址) tree=ET.parse("student.xml") allstudent=tree.findall("student") # for s in allstudent: # print(s.find("stuname").text) #遍历每一个节点并找到想要内容 st=None for s in allstudent: st=student() st.stuname=s.find("stuname").text st.stuage=s.find("stuage").text st.stusex=s.find("stusex").text stu.append(st) for ss in stu : print(ss)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值