python xml etree_python xml包 xml.etree.ElementTree使用记录

19.7.1 教程

这是一个简短的教程使用xml.etree.ElementTree(简称为et)。目标是展示一些构建模块和模块的基本概念

9.7.1.1. XML tree and elements

XML是一种固有的层次化的数据格式,最自然的方式来表示这是树。为此ET有两个方法——ElementTree代表整个XML文档树,Element表示这个树中的一个节点。与整个文档交互(阅读和写作/文件)通常是在ElementTree水平。与一个XML元素及其子元素是元素级别上完成的。

9.7.1.2

xml文件,保存到本地test.xml

ContractedBlock.gif

ExpandedBlockStart.gif

<?xml version="1.0" encoding="utf-8"?>

subPackageInfo

2014-02-10 15:10:50

22088317130

ems

01

0001

1001173023

5

0

22088317130

23

010-55675233

0002

1001173123

5

0

-1

22088317130

EMS

010-55675233

0003

1001173223

0

5

-1

View Code

解析xml文件

from xml.etree importElementTree

tree=ElementTree.parse('test.xml')

#tree= ET.fromstring(country_data_as_string) #fromstring解释字符串,即country_data_as_string为读取xml的字符串

getroot()返回树结构的根元素

get 获取元素的标签

>>> root=tree.getroot()>>>root.tag'request'

find和findall,如果参数是元素名称的话只能查找当前节点的下一层节点,用法下面再介绍

list=root.find('packageList')

infos=list.findall('packageInfo')

查找packageInfo下面的orderId节点的文本

>>> for i ininfos:print i.find('orderId').text22088317130

22088317130

22088317130

find()

1.root.find('packageList')

只匹配root节点下最上层元素,不匹配嵌入另一个元素的元素类型packageList2.root.find('packageList/packageInfo')直接找到packageInfo节点3.a=root.findall('*/packageInfo')>>> for i in a:printi.tag

packageInfo

packageInfo

packageInfo4.我称为xpath方法

a=root.findall('.//orderId')>>> for i in a:printi.text22088317130

22088317130

22088317130

>>> a=root.findall('.//orderId[@id="9001"]')>>>a[0].text'22088317130'

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值