在工作中很多时候都要用到xml,使用这个时候难免会设计到解析他,然后就研究了一下python解析xml问题,看了很多东西,python有很多解析xml的包,但是也折腾我好一段时间,最后选择了这个方法。大家可以参考一下。下面这个是原xml文件,需要解析出来。不过我弄得还不够完整哈,可以一起讨论。
<?xml version="1.0" encoding="utf-8"?>
<collection shelf="New Arrivals">
<movie title="Enemy Behind">
<type>War, Thriller</type>
<format>DVD</format>
<year>2003</year>
<rating>PG</rating>
<stars>10</stars>
<description>Talk about a US-Japan war</description>
</movie>
<movie title="Transformers">
<type>Anime, Science Fiction</type>
<format>DVD</format>
<year>1989</year>
<rating>R</rating>
<stars>8</stars>
<description>A schientific fiction</description>
</movie>
<movie title="Trigun">
<type>Anime, Action</type>
<format>DVD</format>
<episodes>4</episodes>
<rating>PG</rating>
<stars>10</stars>
<description>Vash the Stampede!</description>
</movie>
<movie title="Ishtar">
<type>Comedy</type>
<format>VHS</format>
<rating>PG</rating>
<stars>2</stars>
<description>Viewable boredom</description>
</movie>
</collection>
解析这个的代码直接贴出来:
#-*- coding:utf-8 -*-
#from xml.etree import ElementTree
#from xml.dom import minidom
#import xml.dom.minidom
import xml.etree.cElementTree as ET
def element_xml():
tree = ET.ElementTree(file='sax.xml')
title = tree.getroot()
print title.tag,title.attrib
root = tree.iter()
for i in root:
if i.tag ==None:
print i.attrib
print i.tag,'==',i.text
#print i.tag,i.attrib element_xml()
开始的几个包都是研究的,但是一直不能成功,主要是没能够全部解析出来,要么解析一部分要么解析不对,最后发现这个很快都解析出来了!