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设计模式中的代理模式与模板方法模式编程
Feb 02 Python
Python语言的面相对象编程方式初步学习
Mar 12 Python
matplotlib 输出保存指定尺寸的图片方法
May 24 Python
python topN 取最大的N个数或最小的N个数方法
Jun 04 Python
python3 pygame实现接小球游戏
May 14 Python
Python实现直方图均衡基本原理解析
Aug 08 Python
Django框架下静态模板的继承操作示例
Nov 08 Python
520使用Python实现“我爱你”表白
May 20 Python
python中os包的用法
Jun 01 Python
python语言的优势是什么
Jun 17 Python
只用40行Python代码就能写出pdf转word小工具
May 31 Python
python使用PySimpleGUI设置进度条及控件使用
Jun 10 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
双料怀旧--SHARP GF515的维护、修理和简单调试
2021/03/02 无线电
php中批量替换文件名的实现代码
2011/07/20 PHP
Laravel5.1 框架路由基础详解
2020/01/04 PHP
javascript基于jQuery的表格悬停变色/恢复,表格点击变色/恢复,点击行选Checkbox
2008/08/05 Javascript
jquery监听div内容的变化具体实现思路
2013/11/04 Javascript
深入理解JSON数据源格式
2014/01/10 Javascript
JavaScript保留关键字汇总
2015/12/01 Javascript
深入理解逻辑表达式的用法 与或非的用法
2016/06/06 Javascript
JavaScript中boolean类型之三种情景实例代码
2016/11/21 Javascript
详解ElementUI之表单验证、数据绑定、路由跳转
2017/06/21 Javascript
运用jQuery写的验证表单(实例讲解)
2017/07/06 jQuery
Vue-cli-webpack搭建斗鱼直播步骤详解
2017/11/17 Javascript
Vue服务端渲染实践之Web应用首屏耗时最优化方案
2019/03/22 Javascript
详解JavaScript 异步编程
2020/07/13 Javascript
Python selenium 三种等待方式详解(必会)
2016/09/15 Python
Python 爬虫学习笔记之多线程爬虫
2016/09/21 Python
Python实现的网页截图功能【PyQt4与selenium组件】
2018/07/12 Python
Python 日期区间处理 (本周本月上周上月...)
2019/08/08 Python
python带参数打包exe及调用方式
2019/12/21 Python
Python pip install之SSL异常处理操作
2020/09/03 Python
database面试题
2013/03/28 面试题
学校经典推荐信
2013/10/30 职场文书
2014年圣诞节促销方案
2014/03/14 职场文书
和谐家庭演讲稿
2014/05/24 职场文书
销售队伍口号
2014/06/11 职场文书
男性健康日的活动方案
2014/08/18 职场文书
教师党员自我评价范文
2015/03/04 职场文书
2015年高考寄语或鼓励的话
2015/03/23 职场文书
周末问候语大全
2015/11/10 职场文书
体育委员竞选稿
2015/11/21 职场文书
2016年小学推普宣传周活动总结
2016/04/06 职场文书
python中Tkinter 窗口之输入框和文本框的实现
2021/04/12 Python
Python+Tkinter打造签名设计工具
2022/04/01 Python
uniapp 微信小程序 自定义tabBar 导航
2022/04/22 Javascript
Python 图片添加美颜效果
2022/04/28 Python
SpringBoot详解自定义Stater的应用
2022/07/15 Java/Android