您的位置:首页 > 编程语言 > Python开发

Python解析xml

2018-03-09 09:51 281 查看

Python 解析xml

python有三种方法解析XML,SAX,DOM,以及ElementTree:

本文简单介绍用ElementTree解析xml

xml文件如下:

<?xml version="1.0"?>
<data>
<country name="Liechtenstein">
<rank>1</rank>
<year>2008</year>
<gdppc>141100</gdppc>
<neighbor name="Austria" direction="E"/>
<neighbor name="Switzerland" direction="W"/>
</country>
<country name="Singapore">
<rank>4</rank>
<year>2011</year>、
<gdppc>59900</gdppc>
<neighbor name="Malaysia" direction="N"/>
</country>
<country name="Panama">
<rank>68</rank>
<year>2011</year>
<gdppc>13600</gdppc>
<neighbor name="Costa Rica" direction="W"/>
<neighbor name="Colombia" direction="E"/>
</country>
</data>


XML是一种固有的分层数据格式,最自然的方式来表示它是一棵树。ET有两个类用于此目的 - ElementTree将整个XML文档表示为树,Element表示此树中的单个节点。与整个文档(从文件读取和写入文件)的交互通常在ElementTree级别上进行。与单个XML元素及其子元素的交互在Element级别上完成。

解析程序如下

import xml.etree.ElementTree as ET
tree = ET.parse("country.xml")     #打开xml文档
#root = ET.fromstring(country_string) #从字符串传递xml
root = tree.getroot()         #获得root节点
for country in root.findall('country'): #找到root节点下的所有country节点
rank = country.find('rank').text   #子节点下节点rank的值
name = country.get('name')      #子节点下属性name的值
print (name, rank)


运行结果如下


代码中每行都有注释,这里就不赘述了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: