在工作中很多时候都要用到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()
开始的几个包都是研究的,但是一直不能成功,主要是没能够全部解析出来,要么解析一部分要么解析不对,最后发现这个很快都解析出来了!