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类型强制转换long to int的代码
Feb 10 Python
Python中使用异常处理来判断运行的操作系统平台方法
Jan 22 Python
Python日志模块logging简介
Apr 13 Python
Python fileinput模块使用实例
May 28 Python
Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
Nov 16 Python
python类的继承实例详解
Mar 30 Python
Python模拟登录之滑块验证码的破解(实例代码)
Nov 18 Python
Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题
Feb 21 Python
解决Keras自带数据集与预训练model下载太慢问题
Jun 12 Python
使用python将微信image下.dat文件解密为.png的方法
Nov 30 Python
Python爬虫模拟登陆哔哩哔哩(bilibili)并突破点选验证码功能
Dec 21 Python
Python 详解通过Scrapy框架实现爬取百度新冠疫情数据流程
Nov 11 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
PHP下打开URL地址的几种方法小结
2010/05/16 PHP
php explode函数实例代码
2012/02/27 PHP
PHP判断变量是否为0的方法
2014/02/08 PHP
zend framework中使用memcache的方法
2016/03/04 PHP
js的event详解。
2006/09/06 Javascript
jquery.pagination.js 无刷新分页实现步骤分享
2012/05/23 Javascript
查找Oracle高消耗语句的方法
2014/03/22 Javascript
jQuery实现跨域iframe接口方法调用
2015/03/14 Javascript
js获取隐藏元素宽高的实现方法
2016/05/19 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
jQuery插件Validation快速完成表单验证的方式
2016/07/28 Javascript
node学习记录之搭建web服务器教程
2017/02/16 Javascript
浅谈angular2的http请求返回结果的subcribe注意事项
2017/03/01 Javascript
VueJS如何引入css或者less文件的一些坑
2017/04/25 Javascript
详解Vue 全局变量,局部变量
2019/04/17 Javascript
优雅地使用loading(推荐)
2019/04/20 Javascript
浅谈vue项目用到的mock数据接口的两种方式
2019/10/09 Javascript
JS中==、===你分清楚了吗
2020/03/04 Javascript
微信小程序实现电影App导航和轮播
2020/11/30 Javascript
[00:43]TI7不朽珍藏III——幽鬼不朽展示
2017/07/15 DOTA
Python正则表达式教程之三:贪婪/非贪婪特性
2017/03/02 Python
Python开发的十个小贴士和技巧及长常犯错误
2018/09/27 Python
python内置数据类型之列表操作
2018/11/12 Python
Python 用turtle实现用正方形画圆的例子
2019/11/21 Python
Django ModelForm操作及验证方式
2020/03/30 Python
Django基于Models定制Admin后台实现过程解析
2020/11/11 Python
Html5原创俄罗斯方块(基于canvas)
2019/01/07 HTML / CSS
毕业生自荐信的主要内容
2013/10/29 职场文书
学雷锋树新风演讲稿
2014/05/10 职场文书
信息与计算机科学职业规划范文:成为一艘有方向的船
2014/09/11 职场文书
见习报告格式范文
2014/11/08 职场文书
农村环境卫生倡议书
2015/04/29 职场文书
网络妈妈观后感
2015/06/08 职场文书
百日宴上的祝酒词
2015/08/10 职场文书
Python如何解决secure_filename对中文不支持问题
2021/07/16 Python
微软Win11 全新照片应用面向 Dev预览版推出 新版本上手体验图集
2022/09/23 数码科技