python xml.etree.ElementTree遍历xml所有节点实例详解


Posted in Python onDecember 04, 2016

python xml.etree.ElementTree遍历xml所有节点

XML文件内容:

<students> 
  <student name='刘备' sex='男' age='35'/> 
  <student name='吕布' sex='男' age='38'/> 
  <student name='貂蝉' sex='女' age='22'/> 
</students>

代码:

#-*- coding: UTF-8 -*-  
# 从文件中读取数据 
import xml.etree.ElementTree as ET 
 
#全局唯一标识 
unique_id = 1 
 
#遍历所有的节点 
def walkData(root_node, level, result_list): 
  global unique_id 
  temp_list =[unique_id, level, root_node.tag, root_node.attrib] 
  result_list.append(temp_list) 
  unique_id += 1 
   
  #遍历每个子节点 
  children_node = root_node.getchildren() 
  if len(children_node) == 0: 
    return 
  for child in children_node: 
    walkData(child, level + 1, result_list) 
  return 
 
#获得原始数据 
#out: 
#[ 
#  #ID, Level, Attr Map 
#  [1, 1, {'ID':1, 'Name':'test1'}], 
#  [2, 1, {'ID':1, 'Name':'test2'}], 
#] 
def getXmlData(file_name): 
  level = 1 #节点的深度从1开始 
  result_list = [] 
  root = ET.parse(file_name).getroot() 
  walkData(root, level, result_list) 
 
  return result_list 
 
if __name__ == '__main__': 
  file_name = 'test.xml' 
  R = getXmlData(file_name) 
  for x in R: 
    print x 
  pass

输出结果:

[1, 1, 'students', {}] 
[2, 2, 'student', {'age': '35', 'name': u'\u5218\u5907', 'sex': u'\u7537'}] 
[3, 2, 'student', {'age': '38', 'name': u'\u5415\u5e03', 'sex': u'\u7537'}] 
[4, 2, 'student', {'age': '22', 'name': u'\u8c82\u8749', 'sex': u'\u5973'}]

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Python 相关文章推荐
让python json encode datetime类型
Dec 28 Python
Python和Perl绘制中国北京跑步地图的方法
Mar 03 Python
Python数据结构与算法之列表(链表,linked list)简单实现
Oct 30 Python
python range()函数取反序遍历sequence的方法
Jun 25 Python
python 读取竖线分隔符的文本方法
Dec 20 Python
Python中捕获键盘的方式详解
Mar 28 Python
python实现比较类的两个instance(对象)是否相等的方法分析
Jun 26 Python
Python chardet库识别编码原理解析
Feb 18 Python
解决在keras中使用model.save()函数保存模型失败的问题
May 21 Python
keras 使用Lambda 快速新建层 添加多个参数操作
Jun 10 Python
用python写爬虫简单吗
Jul 28 Python
PyQt5中QSpinBox计数器的实现
Jan 18 Python
Python性能提升之延迟初始化
Dec 04 #Python
python中redis的安装和使用
Dec 04 #Python
Python正则表达式使用范例分享
Dec 04 #Python
Python常用库推荐
Dec 04 #Python
Python 正则表达式的高级用法
Dec 04 #Python
简单谈谈Python流程控制语句
Dec 04 #Python
python中正则的使用指南
Dec 04 #Python
You might like
全国FM电台频率大全 - 9 上海市
2020/03/11 无线电
国产PHP开发框架myqee新手快速入门教程
2014/07/14 PHP
ThinkPHP5.1框架数据库链接和增删改查操作示例
2019/08/03 PHP
js跳转页面方法实现汇总
2014/02/11 Javascript
Bootstrap table使用方法详细介绍
2016/12/09 Javascript
基于JavaScript实现活动倒计时效果
2017/04/20 Javascript
微信小程序实现倒计时60s获取验证码
2020/04/17 Javascript
前端开发不得不知的10个最佳ES6特性
2017/08/30 Javascript
微信小程序上传图片实例
2018/05/28 Javascript
js中null与空字符串&quot;&quot;的区别讲解
2019/01/17 Javascript
layui 地区三级联动 form select 渲染的实例
2019/09/27 Javascript
详解Vue之计算属性
2020/06/20 Javascript
javascript canvas封装动态时钟
2020/09/30 Javascript
vue中watch的用法汇总
2020/12/28 Vue.js
深入讨论Python函数的参数的默认值所引发的问题的原因
2015/03/30 Python
详解 Python 与文件对象共事的实例
2017/09/11 Python
Python3利用SMTP协议发送E-mail电子邮件的方法
2017/09/30 Python
对Python中Iterator和Iterable的区别详解
2018/10/18 Python
python中的&amp;&amp;及||的实现示例
2019/08/07 Python
Numpy之reshape()使用详解
2019/12/26 Python
Anconda环境下Vscode安装Python的方法详解
2020/03/29 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
2020/05/22 Python
解决Keras中CNN输入维度报错问题
2020/06/29 Python
通过css3的filter滤镜改变png图片的颜色的示例代码
2020/05/06 HTML / CSS
Groupon比利时官方网站:特卖和网上购物高达-70%
2019/08/09 全球购物
俄罗斯香水和化妆品网上商店:NOTINO.ru
2019/12/17 全球购物
高级护理实习生自荐信
2013/09/28 职场文书
政风行风建设责任书
2014/07/23 职场文书
纪检干部先进事迹材料
2014/08/23 职场文书
绿色环保家庭事迹材料
2014/08/31 职场文书
2014年初级职称工作总结
2014/12/08 职场文书
会计岗位职责范本
2015/04/02 职场文书
惹女朋友生气检讨书
2015/05/06 职场文书
python实现web邮箱扫描的示例(附源码)
2021/03/30 Python
go语言中fallthrough的用法说明
2021/05/06 Golang
用python实现监控视频人数统计
2021/05/21 Python