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中Flask框架简单入门实例
Mar 21 Python
Python urls.py的三种配置写法实例详解
Apr 28 Python
浅谈Django自定义模板标签template_tags的用处
Dec 20 Python
python3.4实现邮件发送功能
May 28 Python
Python OpenCV中的resize()函数的使用
Jun 20 Python
通过PYTHON来实现图像分割详解
Jun 26 Python
python将四元数变换为旋转矩阵的实例
Dec 04 Python
Python callable内置函数原理解析
Mar 05 Python
python数据库编程 Mysql实现通讯录
Mar 27 Python
tensorflow下的图片标准化函数per_image_standardization用法
Jun 30 Python
Python如何将模块打包并发布
Aug 30 Python
python基础详解之if循环语句
Apr 24 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
2021年最新CPU天梯图
2021/03/04 数码科技
php实现按指定大小等比缩放生成上传图片缩略图的方法
2014/12/15 PHP
PHP面向对象之后期静态绑定功能介绍
2015/05/18 PHP
php中引用&amp;的用法分析【变量引用,函数引用,对象引用】
2016/12/12 PHP
CSS中一些@规则的用法小结
2021/03/09 HTML / CSS
自动生成文章摘要的代码[JavaScript 版本]
2007/03/20 Javascript
Jquery判断$(&quot;#id&quot;)获取的对象是否存在的方法
2013/09/25 Javascript
Jquery原生态实现表格header头随滚动条滚动而滚动
2014/03/18 Javascript
jquery实现个人中心导航菜单效果和美观都非常不错
2014/09/02 Javascript
JavaScript的模块化开发框架Sea.js上手指南
2016/05/12 Javascript
jquery 实现滚动条下拉时无限加载的简单实例
2016/06/01 Javascript
AngularJS基础 ng-dblclick 指令用法
2016/08/01 Javascript
14 个折磨人的 JavaScript 面试题
2016/08/08 Javascript
js控制div层的叠加简单方法
2016/10/15 Javascript
Angular6中使用Swiper的方法示例
2018/07/09 Javascript
深入解析Vue源码实例挂载与编译流程实现思路详解
2019/05/05 Javascript
利用 Chrome Dev Tools 进行页面性能分析的步骤说明(前端性能优化)
2021/02/24 Javascript
[01:14]DOTA2 7.22版本新增神杖效果展示(智力英雄篇)
2019/05/29 DOTA
Python编码类型转换方法详解
2016/07/01 Python
Python中协程用法代码详解
2018/02/10 Python
使用 Python 实现文件递归遍历的三种方式
2018/07/18 Python
利用Python复制文件的9种方法总结
2019/09/02 Python
pandas分组聚合详解
2020/04/10 Python
Python轻量级web框架bottle使用方法解析
2020/06/13 Python
介绍CSS3使用技巧5个
2009/04/02 HTML / CSS
CSS3实现歌词进度文字颜色填充变化动态效果的思路详解
2020/06/02 HTML / CSS
Nike香港官网:Nike HK
2019/03/23 全球购物
美国家居装饰店:Z Gallerie
2020/12/28 全球购物
初中生个人学习的自我评价
2013/12/04 职场文书
工作态度检讨书
2014/02/11 职场文书
小学毕业感言500字
2014/02/28 职场文书
篝火晚会主持词
2014/03/25 职场文书
机房搬迁方案
2014/05/01 职场文书
大学生档案自我鉴定(2篇)
2014/10/14 职场文书
2014年数学教师工作总结
2014/12/03 职场文书
新店开业策划方案怎么书写?
2019/07/05 职场文书