python解析xml文件elementtree_[python] xml.etree.ElementTree解析XML文件

大纲:1. 解析XML文档

2. 获取XML中的元素

xml.etree.ElementTree XML操纵API

ElementTree库提供了一些工具,可以使用基于事件和基于文档的API来解析XML

1. 解析XML文档

已解析的XML文档在内存中由ElementTree和Element对象表示,这些对象基于XML文档中节点嵌套的方式按树结构互相连接。

用parse()解析一个完整的文档时,会返回一个ElementTree实例

country_data.xml:

1

2008

141100

4

2011

59900

68

2011

13600

要解析这个文档,需要向parse()传递一个打开的文件句柄。

import xml.etree.ElementTree as ET

tree = ET.parse('country_data.xml')

root = tree.getroot()

这个方法会读取数据、解析XML,并返回一个ElementTree对象。

作为一个元素,root有一个标签和一个属性字典:

>>> root.tag

'data'

>>> root.attrib

{}

它也有子节点,我们可以迭代

for child in root:

print(child.tag, child.attrib)country {'name': 'Liechtenstein'}

country {'name': 'Singapore'}

country {'name': 'Panama'}

孩子节点是嵌套的,我们可以通过索引访问特定的子节点:

>>> root[0][1].text

'2008'

2. 获取XML中的元素

Element有一些有用的方法,可以帮助递归地遍历它下面的所有子树(它的子树,它们的子树,等等)

比如:Element.iter():

for neighbor in root.iter('neighbor'):

print(neighbor.attrib){'name': 'Austria', 'direction': 'E'}

{'name': 'Switzerland', 'direction': 'W'}

{'name': 'Malaysia', 'direction': 'N'}

{'name': 'Costa Rica', 'direction': 'W'}

{'name': 'Colombia', 'direction': 'E'}Element.findall(): 找到带有标签的元素,该标签是当前元素的直接子元素

Element.find() : 找到第一个带有特定标签的子元素。

Element.text: 访问标签的内容

Element.get():访问标签的属性值

for country in root.findall('country'):

rank = country.find('rank').text

name = country.get('name')

print(rank, name)1 Liechtenstein

4 Singapore

68 Panama

参考:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值