python xml解析实例详解


Posted in Python onNovember 14, 2016

python xml解析

first.xml 

<info> 
<person > 
<id>1</id> 
<name>fsy</name> 
<age >24</age> 
</person> 
<person> 
<id>2</id> 
<name>jianjian</name> 
<age>24</age> 
</person> 
<count id ='1'>1000</count> 
</info>

from xml.etree import ElementTree as etree 

读入

def read_xml(file): 
# parse()函数会返回一个能代表整篇文档的对象。这不是根元素。要获得根元素的引用可以调用getroot()方法。 
tree = etree.parse(file) 
root = tree.getroot() 
return root

得到信息

def print_node(node): 
'''''打印结点基本信息''' 
print("node.tag:%s" % node.tag) 
print("node.attrib:%s"%node.attrib) 
print( "node.text:%s" % node.text)

搜索:

find_all 
>>> root = read_xml ('first.xml')   
>>> res = root.findall("person") 
[<Element 'person' at 0x00000000033388B8>, <Element 'person' at 0x0000000003413D68>] 
 
注意:findall只查询直接的子节点 
>>> r1 = root.findall("id") 
>>> r1 
[] 
>>> r =tree.findall(".//id") 
>>> for e in r: 
  print( e,e.text) 
 
 
<Element 'id' at 0x00000000034279F8> 1 
<Element 'id' at 0x0000000003427B38> 2

find:

#find()方法用来返回第一个匹配到的元素。当我们认为只会有一个匹配,或者有多个匹配但我们只关心第一个的时候,这个方法是很有用的。 
>>> res[0].find("id") 
<Element 'id' at 0x0000000003413CC8> 
>>> print_node(res[0].find("id")) 
node.tag:id 
node.attrib:{} 
node.text:1

find查找失败:

使用find要注意在布尔上下文中,如果ElementTree元素对象不包含子元素,其值则会被认为是False(即如果len(element)等于0)。这就意味着if element.find('...')并非在测试是否find()方法找到了匹配项;这条语句是在测试匹配到的元素是否包含子元素。想要测试find()方法是否返回了一个元素,则需使用if element.find('...') is not None。

>>> bk = res[0].find("no") 
>>> bk 
>>> type(bk) 
<class 'NoneType'> 
>>> res[0].find("id") 
<Element 'id' at 0x0000000003413CC8> 
>>> if res[0].find("id"): 
    print("find") 
  else: 
    print("not find") 
not find 
>>> if res[0].find("id") is not None: 
    print("find") 
  else: 
    print("not find") 
find

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Python 相关文章推荐
python encode和decode的妙用
Sep 02 Python
Python写的一个简单DNS服务器实例
Jun 04 Python
win7 下搭建sublime的python开发环境的配置方法
Jun 18 Python
python实现ipsec开权限实例
Nov 11 Python
Python使用scrapy采集数据过程中放回下载过大页面的方法
Apr 08 Python
深入解析Python中的集合类型操作符
Aug 19 Python
pycharm安装图文教程
May 02 Python
推荐10款最受Python开发者欢迎的Python IDE
Sep 16 Python
Python列表解析操作实例总结
Feb 26 Python
Python基于gevent实现高并发代码实例
May 15 Python
pytorch锁死在dataloader(训练时卡死)
May 28 Python
Python可变与不可变数据和深拷贝与浅拷贝
Apr 06 Python
python入门基础之用户输入与模块初认识
Nov 14 #Python
详解Python多线程
Nov 14 #Python
Python用zip函数同时遍历多个迭代器示例详解
Nov 14 #Python
Python端口扫描简单程序
Nov 10 #Python
Python迭代和迭代器详解
Nov 10 #Python
python通过cookie模拟已登录状态的初步研究
Nov 09 #Python
Python内置函数OCT详解
Nov 09 #Python
You might like
php创建基本身份认证站点的方法详解
2013/06/08 PHP
PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
2014/08/23 PHP
又拍云异步上传实例教程详解
2016/04/19 PHP
thinkphp配置文件路径的实现方法
2016/08/30 PHP
php实现生成PDF文件的方法示例【基于FPDF类库】
2018/07/21 PHP
一款JavaScript压缩工具:X2JSCompactor
2007/06/13 Javascript
javascript document.images实例
2008/05/27 Javascript
js计算页面刷新的次数
2009/07/20 Javascript
编写高性能的JavaScript 脚本的加载与执行
2010/04/19 Javascript
jquery实现metro效果示例代码
2013/09/06 Javascript
javascript实现简单的Map示例介绍
2013/12/23 Javascript
js delete 用法(删除对象属性及变量)
2014/08/24 Javascript
javacript使用break内层跳出外层循环分析
2015/01/12 Javascript
AngularJS 使用$sce控制代码安全检查
2016/01/05 Javascript
AngularJS利用Controller完成URL跳转
2016/08/09 Javascript
javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
2016/10/10 Javascript
微信小程序商城项目之侧栏分类效果(1)
2017/04/17 Javascript
微信小程序实战之自定义模态弹窗(8)
2017/04/18 Javascript
详解webpack+gulp实现自动构建部署
2017/06/29 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
2020/07/07 Javascript
如何使用JS console.log()技巧提高工作效率
2020/10/14 Javascript
使用Python的Bottle框架写一个简单的服务接口的示例
2015/08/25 Python
python条件变量之生产者与消费者操作实例分析
2017/03/22 Python
详解Appium+Python之生成html测试报告
2019/01/04 Python
Python3基础教程之递归函数简单示例
2019/06/07 Python
对python3中的RE(正则表达式)-详细总结
2019/07/23 Python
python中if及if-else如何使用
2020/06/02 Python
《赵州桥》教学反思
2014/02/17 职场文书
挂职自我鉴定
2014/02/26 职场文书
《骆驼和羊》教学反思
2014/02/27 职场文书
三好学生演讲稿范文
2014/04/26 职场文书
求职信结尾怎么写
2014/05/26 职场文书
2014年高二班主任工作总结
2014/12/16 职场文书
求职简历自荐信怎么写
2015/03/26 职场文书
Redis可视化客户端小结
2021/06/10 Redis
如何搭建 MySQL 高可用高性能集群
2021/06/21 MySQL