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中map()与zip()操作方法
Feb 27 Python
Python数据分析之真实IP请求Pandas详解
Nov 18 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
Jan 11 Python
Django实现微信小程序的登录验证功能并维护登录态
Jul 04 Python
python实现连连看辅助(图像识别)
Mar 25 Python
python中利用matplotlib读取灰度图的例子
Dec 07 Python
python中count函数简单的实例讲解
Feb 06 Python
Python如何生成xml文件
Jun 04 Python
python代码区分大小写吗
Jun 17 Python
JupyterNotebook 输出窗口的显示效果调整实现
Sep 22 Python
Lombok插件安装(IDEA)及配置jar包使用详解
Nov 04 Python
python绘制云雨图raincloud plot
Aug 05 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一行代码获取文件后缀名实例分析
2014/11/12 PHP
php实现TCP端口检测的方法
2015/04/01 PHP
php简单实现数组分页的方法
2016/04/30 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
2017/02/10 PHP
几行代码轻松实现PHP文件打包下载zip
2017/03/01 PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
2019/09/30 PHP
jquery插件实现鼠标经过图片右侧显示大图的效果(类似淘宝)
2013/02/04 Javascript
JavaScript的漂亮的代码片段
2013/06/05 Javascript
jQuery 获取浏览器所在的IP地址的小例子
2013/11/08 Javascript
JavaScript类属性的访问方式详解
2014/02/11 Javascript
Nodejs为什么选择javascript为载体语言
2015/01/13 NodeJs
jQuery实现精美的多级下拉菜单特效
2015/03/14 Javascript
jQuery Mobile 触摸事件实例
2016/06/04 Javascript
Vue 将后台传过来的带html字段的字符串转换为 HTML
2018/03/29 Javascript
jQuery实现移动端笔触canvas电子签名
2020/05/21 jQuery
详解JavaScript的this指向和绑定
2020/09/08 Javascript
[00:31]DOTA2上海特级锦标赛 Fnatic战队宣传片
2016/03/04 DOTA
[24:42]VP vs TNC Supermajor小组赛B组 BO3 第三场 6.2
2018/06/03 DOTA
剖析Python的Twisted框架的核心特性
2016/05/25 Python
Python推导式简单示例【列表推导式、字典推导式与集合推导式】
2018/12/04 Python
PyQt5显示GIF图片的方法
2019/06/17 Python
Linux安装Python3如何和系统自带的Python2并存
2020/07/23 Python
4款Python 类型检查工具,你选择哪个呢?
2020/10/30 Python
基于注解实现 SpringBoot 接口防刷的方法
2021/03/02 Python
解决pytorch 数据类型报错的问题
2021/03/03 Python
初级Java程序员面试题
2016/03/03 面试题
Ruby如何创建一个线程
2013/03/10 面试题
学生实习介绍信
2014/01/15 职场文书
大学班级文化建设方案
2014/05/06 职场文书
疾病捐款倡议书
2014/05/13 职场文书
2014年教师政治学习材料
2014/06/02 职场文书
2015年安全保卫工作总结
2015/05/14 职场文书
2015年图书馆个人工作总结
2015/05/26 职场文书
电影雷锋观后感
2015/06/10 职场文书
Go语言中的UTF-8实现
2021/04/26 Golang
pytorch实现手写数字图片识别
2021/05/20 Python