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统计文本文件内单词数量的方法
May 30 Python
使用Nginx+uWsgi实现Python的Django框架站点动静分离
Mar 21 Python
用不到50行的Python代码构建最小的区块链
Nov 16 Python
numpy排序与集合运算用法示例
Dec 15 Python
python爬虫面试宝典(常见问题)
Mar 02 Python
python opencv鼠标事件实现画框圈定目标获取坐标信息
Apr 18 Python
基于python操作ES实例详解
Nov 16 Python
python中从for循环延申到推导式的具体使用
Nov 29 Python
Django-xadmin+rule对象级权限的实现方式
Mar 30 Python
python openCV实现摄像头获取人脸图片
Aug 20 Python
使用Python通过oBIX协议访问Niagara数据的示例
Dec 04 Python
pycharm 配置svn的图文教程(手把手教你)
Jan 15 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
计数器详细设计
2006/10/09 PHP
php中生成随机密码的自定义函数代码
2013/10/21 PHP
PHP实现链式操作的原理详解
2016/09/16 PHP
10个基于Jquery的幻灯片插件教程
2010/10/29 Javascript
ExtJS4中的requires使用方法示例介绍
2013/12/03 Javascript
自定义jquery模态窗口插件无法在顶层窗口显示问题
2014/05/29 Javascript
jQuery学习笔记之toArray()
2014/06/09 Javascript
jQuery插件jcrop+Fileapi完美实现图片上传+裁剪+预览的代码分享
2015/04/22 Javascript
JavaScript实现iframe自动高度调整和不同主域名跨域
2016/02/27 Javascript
jQuery实现ToolTip元素定位显示功能示例
2016/11/23 Javascript
JQuery统计input和textarea文字输入数量(代码分享)
2016/12/29 Javascript
Bootstrap选项卡学习笔记分享
2017/02/13 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
ES6模块化的import和export用法方法总结
2017/08/08 Javascript
js 将canvas生成图片保存,或直接保存一张图片的实现方法
2018/01/02 Javascript
vue使用$emit时,父组件无法监听到子组件的事件实例
2018/02/26 Javascript
vue-auto-focus: 控制自动聚焦行为的 vue 指令方法
2018/08/25 Javascript
javascript中函数的写法实例代码详解
2018/10/28 Javascript
Vue利用History记录上一页面的数据方法实例
2018/11/02 Javascript
JavaScript函数式编程(Functional Programming)组合函数(Composition)用法分析
2019/05/22 Javascript
微信小程序 WXML节点信息查询详解
2019/07/29 Javascript
[00:56]跨越时空加入战场 全新祈求者身心“失落奇艺侍祭”展示
2019/07/20 DOTA
[06:59]DOTA2-DPC中国联赛3月7日Recap集锦
2021/03/11 DOTA
Django1.7+python 2.78+pycharm配置mysql数据库教程
2014/11/18 Python
python处理multipart/form-data的请求方法
2018/12/26 Python
django 使用全局搜索功能的实例详解
2019/07/18 Python
Django Admin中增加导出Excel功能过程解析
2019/09/04 Python
详解在python操作数据库中游标的使用方法
2019/11/12 Python
如何使用python传入不确定个数参数
2020/02/18 Python
Python 分布式缓存之Reids数据类型操作详解
2020/06/24 Python
Roxy荷兰官方网站:冲浪、滑雪板、服装和配件
2019/10/22 全球购物
财务管理个人自荐书范文
2013/11/24 职场文书
护理专业学生的求职信范文
2013/12/11 职场文书
运动会入场词60字
2014/02/15 职场文书
高二学年自我鉴定范文(2篇)
2014/09/26 职场文书
公积金具结保证书
2015/05/11 职场文书