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 相关文章推荐
pydev使用wxpython找不到路径的解决方法
Feb 10 Python
python批量修改文件后缀示例代码分享
Dec 24 Python
python实现unicode转中文及转换默认编码的方法
Apr 29 Python
python 如何快速找出两个电子表中数据的差异
May 26 Python
Python如何实现MySQL实例初始化详解
Nov 06 Python
Python 用Redis简单实现分布式爬虫的方法
Nov 23 Python
python实现随机梯度下降法
Mar 24 Python
Python Django的安装配置教程图文详解
Jul 17 Python
python使用flask与js进行前后台交互的例子
Jul 19 Python
python对批量WAV音频进行等长分割的方法实现
Sep 25 Python
python 基于opencv 实现一个鼠标绘图小程序
Dec 11 Python
Python自动化测试PO模型封装过程详解
Jun 22 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实现爬取和分析知乎用户数据
2016/01/26 PHP
PHP二分查找算法示例【递归与非递归方法】
2016/09/29 PHP
php解析mht文件转换成html的实例
2017/03/13 PHP
PHP+iframe模拟Ajax上传文件功能示例
2019/07/02 PHP
javascript 打印内容方法小结
2009/11/04 Javascript
JavaScript 利用Cookie记录用户登录信息
2009/12/08 Javascript
JavaScript之HTMLCollection接口代码
2011/04/27 Javascript
JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享
2013/07/02 Javascript
ExtJS的拖拽效果示例
2013/12/09 Javascript
jQuery之ajax删除详解
2014/02/27 Javascript
jQuery制作仿Mac Lion OS滚动条效果
2015/02/10 Javascript
jQuery实现模拟marquee标签效果
2015/07/14 Javascript
微信js-sdk界面操作接口用法示例
2016/10/12 Javascript
Websocket协议详解及简单实例代码
2016/12/12 Javascript
如何提高数据访问速度
2016/12/26 Javascript
详解Angular.js指令中scope类型的几种特殊情况
2017/02/21 Javascript
简单实现js轮播图效果
2017/07/14 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
2018/02/06 Javascript
微信小程序左滑删除实现代码实例
2019/09/16 Javascript
Vue this.$router.push(参数)实现页面跳转操作
2020/09/09 Javascript
[48:47]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
使用python获取CPU和内存信息的思路与实现(linux系统)
2014/01/03 Python
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
2017/12/19 Python
Python实现生成随机日期字符串的方法示例
2017/12/25 Python
Python实现快速傅里叶变换的方法(FFT)
2018/07/21 Python
python 3调用百度OCR API实现剪贴板文字识别
2018/09/04 Python
python利用selenium进行浏览器爬虫
2019/04/25 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
2020/01/18 Python
PyCharm License Activation激活码失效问题的解决方法(图文详解)
2020/03/12 Python
CSS3中设置3D变形的transform-style属性详解
2016/05/23 HTML / CSS
Staples加拿大官方网站:办公用品一站式采购
2016/09/25 全球购物
西雅图电动自行车公司:Rad Power Bikes
2020/02/02 全球购物
小学感恩教育活动总结
2014/07/07 职场文书
2016高考感言
2015/08/01 职场文书
2016年基层党组织创先争优承诺书
2016/03/25 职场文书
什么是clearfix (一文搞清楚css清除浮动clearfix)
2023/05/21 HTML / CSS