python读取xml(二)

ElementTree(元素树)读取xml

1.引包

from xml.etree import ElementTree

2.定义一个xml文件
xmlTest.xml

<?xml version="1.0" encoding="utf-8"?>
<emps>
    <emp id="0" sex="male">
        <empno value="0000">7369</empno>
        <ename>SMITH</ename>
        <job>CLERK</job>
    </emp>
    <emp id="1" sex="female">
        <empno value="1111">7499</empno>
        <ename>ALLEN</ename>
        <job>SALESMAN</job>
    </emp>
    <emp id="2">
        <empno value="2222">7566</empno>
        <ename>JONES</ename>
        <job>MANAGER</job>
    </emp>
    <emp id="3">
        <empno>75662</empno>
        <ename>JONES2</ename>
        <job>MANAGER2</job>
        <age>33</age>
    </emp>
</emps>

3.用ElementTree读取xml文件
ElementTree就像一个轻量级的DOM,具有方便友好的API。代码可用性好,速度快,消耗内存少

#xmlTest2.py

from xml.etree import ElementTree

filename = "xmlTest.xml"
###2.ElementTree
print "2.ElementTree"
root2 = ElementTree.parse(filename) # read xml file
#root2 = ElementTree.fromstring(text) # read string

lst_node = root2.getiterator("emp")
for emp in lst_node:
    print "emp.attrib:%s" % emp.attrib
    if emp.attrib.has_key('sex') > 0 :
        print "emp.attrib['sex']:%s" % emp.attrib['sex']
    for child in emp.getchildren():
        print child.tag, ":", child.text
    print "#################"

4.显示结果

D:\pyProjects>python xmlTest2.py
2.ElementTree
emp.attrib:{'id': '0', 'sex': 'male'}
emp.attrib['sex']:male
empno : 7369
ename : SMITH
job : CLERK
#################
emp.attrib:{'id': '1', 'sex': 'female'}
emp.attrib['sex']:female
empno : 7499
ename : ALLEN
job : SALESMAN
#################
emp.attrib:{'id': '2'}
empno : 7566
ename : JONES
job : MANAGER
#################
emp.attrib:{'id': '3'}
empno : 75662
ename : JONES2
job : MANAGER2
age : 33
#################

D:\pyProjects>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python是一种优秀的编程语言,在实现解析XML文件的功能方面表现出色。要使用Python读取XML,需要先安装一个XML解析库。Python提供了三种内置的XML解析库:SAX,DOM和ElementTree。接下来,我们将简单介绍这些库的使用方法。 SAX全称是“Simple API for XML”,在Python中可通过import sax模块来调用。SAX是基于事件驱动的解析器,它不需要将整个XML文件加载到内存中,而是在解析的同时从文件中读取数据块,处理完后就释放。SAX解析器在碰到一个元素的开始和结束标签时,会触发事件,我们只需要实现相应事件的处理函数,就能获取到元素的内容和属性等信息。 DOM全称是“Document Object Model”,在Python中可通过import xml.dom.minidom模块来调用。DOM是将整个XML文件加载到内存中,再将它解析成一个树形结构,通过节点之间的关系来访问元素内容的方式。使用DOM方式解析XML文件,必须将整个XML文件加载到内存中,所以对于较大的XML文件,DOM方式并不是最适合的。 ElementTree全称是“xml.etree.ElementTree”,在Python中可通过import xml.etree.ElementTree模块来调用。ElementTree是一种轻量级的、以事件驱动的XML解析库,它不需要大量的内存,并且解析速度很快。使用ElementTree库的主要步骤是:将XML文件加载到内存中,将其转换成元素树,然后利用Element对象和ElementTree API就能实现对XML文件的解析和操作。 综上所述,Python读取XML的三种方法各有优缺点,在不同的场合下选择不同的解析方法会更加合适。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值