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 subprocess模块详细解读
Jan 29 Python
Django使用paginator插件实现翻页功能的实例
Oct 24 Python
python 画三维图像 曲面图和散点图的示例
Dec 29 Python
Python3enumrate和range对比及示例详解
Jul 13 Python
python按键按住不放持续响应的实例代码
Jul 17 Python
python opencv调用笔记本摄像头
Aug 28 Python
Django 批量插入数据的实现方法
Jan 12 Python
Python Numpy,mask图像的生成详解
Feb 19 Python
Python使用OpenPyXL处理Excel表格
Jul 02 Python
用python给csv里的数据排序的具体代码
Jul 17 Python
Python从文件中读取数据的方法步骤
Nov 18 Python
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
Jun 07 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中文乱码
2009/11/26 PHP
PHP可变函数的使用详解
2013/06/14 PHP
PHP set_error_handler()函数使用详解(示例)
2013/11/12 PHP
PHP中localeconv()函数的用法
2019/03/26 PHP
在第一个input框内输入内容.textarea自动得到第一个文件框的值的javascript代码
2007/04/20 Javascript
js分解url参数(面向对象-极简主义法应用)
2012/08/09 Javascript
js修改table中Td的值(定义td的双击事件)
2013/01/10 Javascript
判断复选框是否被选中的两种方法
2014/06/04 Javascript
Nodejs sublime text 3安装与配置
2014/06/19 NodeJs
jquery根据锚点offset值实现动画切换
2014/09/11 Javascript
很全面的JavaScript常用功能汇总集合
2016/01/22 Javascript
基于JS实现textarea中获取动态剩余字数的方法
2016/05/25 Javascript
js 连续赋值的简单实现
2016/06/13 Javascript
nodejs+mongodb+vue前后台配置ueditor的示例代码
2018/01/02 NodeJs
前端开发之便利店收银系统代码
2019/12/27 Javascript
初步讲解Python中的元组概念
2015/05/21 Python
利用aardio给python编写图形界面
2017/08/21 Python
Python字典,函数,全局变量代码解析
2017/12/18 Python
Django多个app urls配置代码实例
2020/11/26 Python
利用html5 file api读取本地文件示例(如图片、PDF等)
2018/03/07 HTML / CSS
中国跨境海淘网站:考拉海购
2016/08/01 全球购物
美国家具网站:Cymax
2016/09/17 全球购物
英国电视和家用电器购物网站:rlrdistribution.co.uk
2018/11/20 全球购物
美国领先的低折扣旅行网站:Hotwire
2019/01/19 全球购物
美国唇部护理专家:Sara Happ
2019/06/19 全球购物
亚洲颇具影响力的男性在线购物零售商:His
2019/11/24 全球购物
描述内存分配方式以及它们的区别
2016/10/15 面试题
一篇.NET面试题
2014/09/29 面试题
园林设计师自荐信
2013/11/18 职场文书
淘宝网店营销策划书
2014/01/11 职场文书
2015年公司新年寄语
2014/12/08 职场文书
2015年酒店年度工作总结
2015/05/23 职场文书
法人代表资格证明书
2015/06/18 职场文书
幼儿园家长心得体会
2016/01/21 职场文书
学习计划是什么
2019/04/30 职场文书
python3 hdf5文件 遍历代码
2021/05/19 Python