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实现每次处理一个字符的三种方法
Oct 09 Python
Python使用MONGODB入门实例
May 11 Python
Python中的推导式使用详解
Jun 03 Python
python实现的系统实用log类实例
Jun 30 Python
python shell根据ip获取主机名代码示例
Nov 25 Python
Python下调用Linux的Shell命令的方法
Jun 12 Python
python2.7的flask框架之引用js&amp;css等静态文件的实现方法
Aug 22 Python
Python PIL图片添加字体的例子
Aug 22 Python
原来我一直安装 Python 库的姿势都不对呀
Nov 11 Python
Python matplotlib可视化实例解析
Jun 01 Python
python 使用递归的方式实现语义图片分割功能
Jul 16 Python
Python常用数据分析模块原理解析
Jul 20 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/12/25 PHP
PHP生成静态HTML文档实现代码
2016/06/23 PHP
php分享朋友圈的实现代码
2019/02/18 PHP
PHP中localeconv()函数的用法
2019/03/26 PHP
ExtJS 2.0实用简明教程之应用ExtJS
2009/04/29 Javascript
javascript 简练的几个函数
2009/08/29 Javascript
用JS控制回车事件的代码
2011/02/20 Javascript
jquery拖动插件(jquery.drag)使用介绍
2013/06/18 Javascript
js动态添加事件并可传参数示例代码
2013/10/21 Javascript
Js使用WScript.Shell对象执行.bat文件和cmd命令
2014/12/18 Javascript
深入解读JavaScript中的Iterator和for-of循环
2015/07/28 Javascript
Ajax异步文件上传与NodeJS express服务端处理
2017/04/01 NodeJs
JavaScript实现图片切换效果
2017/08/12 Javascript
react在安卓中输入框被手机键盘遮挡问题的解决方法
2018/09/03 Javascript
小程序测试后台服务的方法(ngrok)
2019/03/08 Javascript
vue.js中导出Excel表格的案例分析
2019/06/11 Javascript
微信小程序实现form表单本地储存数据
2019/06/27 Javascript
超简单的微信小程序轮播图
2019/11/22 Javascript
Vue分页效果与购物车功能
2019/12/13 Javascript
Python中的测试模块unittest和doctest的使用教程
2015/04/14 Python
详解Python中 sys.argv[]的用法简明解释
2017/12/20 Python
一篇文章快速了解Python的GIL
2018/01/12 Python
解决pandas.DataFrame.fillna 填充Nan失败的问题
2018/11/06 Python
python 实用工具状态机transitions
2020/11/21 Python
美国渔具店:FishUSA
2019/08/07 全球购物
物业管理大学生个人的自我评价
2013/10/10 职场文书
职高毕业生自我鉴定
2013/10/21 职场文书
乔布斯斯坦福大学演讲稿
2014/05/23 职场文书
竞选宣传委员演讲稿
2014/05/24 职场文书
乡镇党员干部群众路线对照检查材料思想汇报
2014/09/28 职场文书
撤诉状格式范本
2015/05/19 职场文书
2015年党总支工作总结
2015/05/25 职场文书
入党积极分子培养人意见
2015/06/02 职场文书
2019年最新版见习人员管理制度!
2019/07/08 职场文书
Python中super().__init__()测试以及理解
2021/12/06 Python
Java 数组的使用
2022/05/11 Java/Android