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 24 Python
详解python里使用正则表达式的分组命名方式
Oct 24 Python
python线程池threadpool实现篇
Apr 27 Python
django的登录注册系统的示例代码
May 14 Python
python 将list转成字符串,中间用符号分隔的方法
Oct 23 Python
python+ffmpeg批量去视频开头的方法
Jan 09 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
Jun 12 Python
python3.6 如何将list存入txt后再读出list的方法
Jul 02 Python
python3代码中实现加法重载的实例
Dec 03 Python
Python运算符+与+=的方法实例
Feb 18 Python
Python爬虫之爬取最新更新的小说网站
May 06 Python
python多线程方法详解
Jan 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 preg_replace替换实例讲解
2013/11/04 PHP
PHP利用APC模块实现大文件上传进度条的方法
2015/10/29 PHP
PHP实现的文件上传类与用法详解
2017/07/05 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
php实现QQ小程序发送模板消息功能
2019/09/18 PHP
从零开始学习jQuery (三) 管理jQuery包装集
2011/02/23 Javascript
JQuery实现展开关闭层的方法
2015/02/17 Javascript
jQuery基于排序功能实现上移、下移的方法
2016/11/26 Javascript
解决Window10系统下Node安装报错的问题分析
2016/12/13 Javascript
js实现三级联动效果(简单易懂)
2017/03/27 Javascript
js实现适配不同的屏幕大小
2017/04/10 Javascript
vue.js学习之vue-cli定制脚手架详解
2017/07/02 Javascript
React + webpack 环境配置的方法步骤
2017/09/07 Javascript
微信小程序使用modal组件弹出对话框功能示例
2017/11/29 Javascript
React事件处理的机制及原理
2018/12/03 Javascript
[01:05]主宰至宝剑心之遗
2017/03/16 DOTA
状态机的概念和在Python下使用状态机的教程
2015/04/11 Python
对python的bytes类型数据split分割切片方法
2018/12/04 Python
python之cv2与图像的载入、显示和保存实例
2018/12/05 Python
python读取目录下最新的文件夹方法
2018/12/24 Python
python调试神器PySnooper的使用
2019/07/03 Python
python代码编写计算器小程序
2020/03/30 Python
python实现大学人员管理系统
2019/10/25 Python
eBay爱尔兰站:eBay.ie
2019/08/09 全球购物
CSS实现fullpage.js全屏滚动效果的示例代码
2021/03/24 HTML / CSS
秋天的雨教学反思
2014/04/27 职场文书
英语故事演讲稿
2014/04/29 职场文书
学校课外活动总结
2014/05/08 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
2015年元宵节活动总结
2015/02/06 职场文书
幼儿园辞职信范文
2015/02/27 职场文书
专家推荐信范文
2015/03/26 职场文书
如何在CSS中绘制曲线图形及展示动画
2021/05/24 HTML / CSS
【2·13】一图读懂中国无线电发展
2022/02/18 无线电
Python Numpy库的超详细教程
2022/04/06 Python
Python开发五子棋小游戏
2022/04/28 Python