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实现360皮肤按钮控件示例
Feb 21 Python
Python合并两个字典的常用方法与效率比较
Jun 17 Python
关于python的bottle框架跨域请求报错问题的处理方法
Mar 19 Python
Python tkinter模块中类继承的三种方式分析
Aug 08 Python
Linux下Python安装完成后使用pip命令的详细教程
Nov 22 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
Jan 15 Python
让你的Python代码实现类型提示功能
Nov 19 Python
pytorch实现用CNN和LSTM对文本进行分类方式
Jan 08 Python
Pytorch使用MNIST数据集实现基础GAN和DCGAN详解
Jan 10 Python
浅谈tensorflow之内存暴涨问题
Feb 05 Python
PyCharm vs VSCode,作为python开发者,你更倾向哪种IDE呢?
Aug 17 Python
python switch 实现多分支选择功能
Dec 21 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 array_flip() 删除数组重复元素
2009/01/14 PHP
php模板函数 正则实现代码
2012/10/15 PHP
thinkPHP框架自动填充原理与用法分析
2018/04/03 PHP
php代码调试利器firephp安装与使用方法分析
2018/08/21 PHP
javascript 获取网页参数系统
2008/07/19 Javascript
jQuery中需要注意的细节问题小结
2011/12/06 Javascript
探索Emberjs制作一个简单的Todo应用
2012/11/07 Javascript
动态的改变IFrame的高度实现IFrame自动伸展适应高度
2012/12/28 Javascript
JQuery设置和去除disabled属性的5种方法总结
2013/05/16 Javascript
js获取控件位置以及不同浏览器中的差别介绍
2013/08/08 Javascript
jQuery使用fadein方法实现渐出效果实例
2015/03/27 Javascript
最丑的时钟效果!js canvas时钟制作方法
2016/08/15 Javascript
ReactNative之键盘Keyboard的弹出与消失示例
2017/07/11 Javascript
详解VUE Element-UI多级菜单动态渲染的组件
2019/04/25 Javascript
vue实现倒计时获取验证码效果
2020/04/17 Javascript
VUE渲染后端返回含有script标签的html字符串示例
2019/10/28 Javascript
node.js域名解析实现方法详解
2019/11/05 Javascript
浅谈Vue开发人员的7个最好的VSCode扩展
2021/01/20 Vue.js
[01:02:48]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Liquid
2018/04/03 DOTA
Python操作json数据的一个简单例子
2014/04/17 Python
在Python操作时间和日期之asctime()方法的使用
2015/05/22 Python
Python解析json文件相关知识学习
2016/03/01 Python
Python内置函数reversed()用法分析
2018/03/20 Python
python dataframe astype 字段类型转换方法
2018/04/11 Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
2019/02/26 Python
Python第三方库face_recognition在windows上的安装过程
2019/05/03 Python
如何用C代码给Python写扩展库(Cython)
2019/05/17 Python
Amaze UI 文件选择域的示例代码
2020/08/26 HTML / CSS
餐饮业会计岗位职责
2013/12/19 职场文书
中华美德颂演讲稿
2014/05/20 职场文书
警察群众路线整改措施
2014/09/26 职场文书
婚礼父母致辞
2015/07/28 职场文书
HR必备:销售经理聘用合同范本
2019/08/21 职场文书
导游词之淮安明祖陵
2019/11/25 职场文书
Python预测分词的实现
2021/06/18 Python
SQLServer之常用函数总结详解
2021/08/30 SQL Server