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操作gmail实例
Jan 14 Python
Python 判断是否为质数或素数的实例
Oct 30 Python
Python基于列表模拟堆栈和队列功能示例
Jan 05 Python
pandas把dataframe转成Series,改变列中值的类型方法
Apr 10 Python
Python对切片命名的实现方法
Oct 16 Python
Python minidom模块用法示例【DOM写入和解析XML】
Mar 25 Python
如何使用Python进行OCR识别图片中的文字
Apr 01 Python
Python3日期与时间戳转换的几种方法详解
Jun 04 Python
elasticsearch python 查询的两种方法
Aug 04 Python
使用IDLE的Python shell窗口实例详解
Nov 19 Python
python 浅谈serial与stm32通信的编码问题
Dec 18 Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
Feb 18 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后退一页表单内容保存实现方法
2012/06/17 PHP
10个对初学者非常有用的PHP技巧
2016/04/06 PHP
Yii2实现多域名跨域同步登录退出
2017/02/04 PHP
PHP CURL中传递cookie的方法步骤
2019/05/09 PHP
laravel自定义分页的实现案例offset()和limit()
2019/10/15 PHP
JavaScript具有类似Lambda表达式编程能力的代码(改进版)
2010/09/14 Javascript
基于jquery实现的上传图片及图片大小验证、图片预览效果代码
2011/04/12 Javascript
js实现多选项切换导航菜单的方法
2015/02/06 Javascript
深入浅析search 搜索框的写法
2016/08/02 Javascript
CSS+jQuery实现简单的折叠菜单
2016/12/20 Javascript
js实现鼠标左右移动,图片也跟着移动效果
2017/01/25 Javascript
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
2017/06/23 Javascript
Chrome调试折腾记之JS断点调试技巧
2017/09/11 Javascript
Bootstrap 时间日历插件bootstrap-datetimepicker配置与应用小结
2019/05/28 Javascript
JS使用正则表达式判断输入框失去焦点事件
2019/10/16 Javascript
python中pygame模块用法实例
2014/10/09 Python
Python入门篇之正则表达式
2014/10/20 Python
Python实现的下载8000首儿歌的代码分享
2014/11/21 Python
自动化Nginx服务器的反向代理的配置方法
2015/06/28 Python
详解利用python+opencv识别图片中的圆形(霍夫变换)
2019/07/01 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
2020/06/03 Python
Python实现手势识别
2020/10/21 Python
CSS3圆角和渐变2种常用功能详解
2016/01/06 HTML / CSS
装潢设计实习自我鉴定
2013/09/19 职场文书
播音主持女孩的自我评价分享
2013/11/20 职场文书
中青班党性分析材料
2014/02/16 职场文书
优质护理服务演讲稿
2014/05/07 职场文书
应届生求职信
2014/05/31 职场文书
国庆节演讲稿范文2014
2014/09/19 职场文书
离婚协议书包括哪些内容
2014/10/16 职场文书
圣诞节开幕词
2015/01/29 职场文书
手机销售员岗位职责
2015/04/11 职场文书
社区法制宣传日活动总结
2015/05/05 职场文书
小学大队委竞选口号
2015/12/25 职场文书
Python3 类型标注支持操作
2021/06/02 Python
服务器间如何实现文件共享
2022/05/20 Servers