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操作SQLite数据库的方法详解
Jun 16 Python
浅谈Python对内存的使用(深浅拷贝)
Jan 17 Python
python flask中静态文件的管理方法
Mar 20 Python
python代码实现逻辑回归logistic原理
Aug 07 Python
修改Pandas的行或列的名字(重命名)
Dec 18 Python
Python运行异常管理解决方案
Mar 09 Python
Python @property及getter setter原理详解
Mar 31 Python
python中tab键是什么意思
Jun 18 Python
python opencv实现简易画图板
Aug 27 Python
Python 打印自己设计的字体的实例讲解
Jan 04 Python
Python使用tkinter实现小时钟效果
Feb 22 Python
Python实现为PDF去除水印的示例代码
Apr 03 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的5个安全措施小结
2012/07/17 PHP
Centos 6.5系统下编译安装PHP 7.0.13的方法
2016/12/19 PHP
PHP基于自增数据如何生成不重复的随机数示例
2017/05/19 PHP
thinkPHP5框架分页样式类完整示例
2018/09/01 PHP
Laravel基础-关于引入公共文件的两种方式
2019/10/18 PHP
PHP7生产环境队列Beanstalkd用法详解
2020/05/19 PHP
使用IE的地址栏来辅助调试Web页脚本
2007/03/08 Javascript
使用onbeforeunload属性后的副作用
2007/03/08 Javascript
一段实现页面上的图片延时加载的js代码
2010/02/11 Javascript
js读取json的两种常用方法示例介绍
2014/10/19 Javascript
js+canvas简单绘制圆圈的方法
2016/01/28 Javascript
JS中位置与大小的获取方法
2016/11/22 Javascript
vue 挂载路由到头部导航的方法
2017/11/13 Javascript
layui框架中layer父子页面交互的方法分析
2017/11/15 Javascript
bootstrap 通过加减按钮实现输入框组功能
2017/11/15 Javascript
JavaScript 有用的代码片段和 trick
2018/02/22 Javascript
Spring boot 和Vue开发中CORS跨域问题解决
2018/09/05 Javascript
Angular刷新当前页面的实现方法
2018/11/21 Javascript
微信小程序 Storage更新详解
2019/07/16 Javascript
深入理解令牌认证机制(token)
2019/08/22 Javascript
JS实现纵向轮播图(初级版)
2020/01/18 Javascript
一则python3的简单爬虫代码
2014/05/26 Python
在Django的URLconf中进行函数导入的方法
2015/07/18 Python
Python实现感知器模型、两层神经网络
2017/12/19 Python
Python 绘制酷炫的三维图步骤详解
2019/07/12 Python
python多线程分块读取文件
2019/08/29 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
2019/12/09 Python
pycharm实现print输出保存到txt文件
2020/06/01 Python
mui几种页面跳转方式对比总结概括
2017/08/18 HTML / CSS
英国最大的在线亚洲杂货店:Red Rickshaw
2020/03/22 全球购物
某公司的.net工程师面试题笔试题
2013/11/22 面试题
车辆维修工自我评价怎么写
2013/09/20 职场文书
2014教师“四风问题”对照检查材料思想汇报
2014/09/16 职场文书
租赁协议书
2015/01/27 职场文书
SQL Server使用导出向导功能
2022/04/08 SQL Server
postgresql如何找到表中重复数据的行并删除
2023/05/08 MySQL