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 排列组合之itertools
Mar 20 Python
python获取外网ip地址的方法总结
Jul 02 Python
python遍历文件夹找出文件夹后缀为py的文件方法
Oct 21 Python
pygame实现雷电游戏雏形开发
Nov 20 Python
用Python读取几十万行文本数据
Dec 24 Python
Python txt文件加入字典并查询的方法
Jan 15 Python
在Python中使用Neo4j的方法
Mar 14 Python
python 线性回归分析模型检验标准--拟合优度详解
Feb 24 Python
快速解决Django关闭Debug模式无法加载media图片与static静态文件
Apr 07 Python
python中添加模块导入路径的方法
Feb 03 Python
tensorflow中的数据类型dtype用法说明
May 26 Python
pytorch 如何使用batch训练lstm网络
May 28 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
实现分十页分向前十页向后十页的处理
2006/10/09 PHP
PHP时间戳使用实例代码
2008/06/07 PHP
php google或baidu分页代码
2009/11/26 PHP
PHP采集腾讯微博的实现代码
2012/01/19 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
thinkphp5+layui实现的分页样式示例
2019/10/08 PHP
jquery向.ashx文件post中文乱码问题的解决方法
2011/03/28 Javascript
JQuery中判断一个元素下面是否有内容或者有某个标签的判断代码
2012/02/02 Javascript
javascript 兼容所有浏览器的DOM扩展功能
2012/08/01 Javascript
mailto的使用技巧分享
2012/12/21 Javascript
js字符串转成JSON
2013/11/07 Javascript
jquery使用正则表达式验证email地址的方法
2015/01/22 Javascript
AngularJS基础学习笔记之简单介绍
2015/05/10 Javascript
JavaScript中数组常见操作技巧
2017/09/01 Javascript
node 使用 async 控制并发的方法
2018/05/07 Javascript
解决bootstrap-select 动态加载数据不显示的问题
2018/08/10 Javascript
[01:39](回顾)各路豪强针锋相对,几经鏖战四强产生
2014/07/01 DOTA
[04:12]第二届DOTA2亚洲邀请赛选手传记-Newbee.Sccc
2017/04/03 DOTA
[50:11]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第三场
2018/04/09 DOTA
爬山算法简介和Python实现实例
2014/04/26 Python
python登录豆瓣并发帖的方法
2015/07/08 Python
python的staticmethod与classmethod实现实例代码
2018/02/11 Python
python如何压缩新文件到已有ZIP文件
2018/03/14 Python
Python实现图片拼接的代码
2018/07/02 Python
Python 3.8新特征之asyncio REPL
2019/05/28 Python
python_mask_array的用法
2020/02/18 Python
详解canvas在圆弧周围绘制文本的两种写法
2018/05/22 HTML / CSS
酒店服务与管理毕业生求职信
2013/11/02 职场文书
生产部管理制度
2014/01/31 职场文书
高中军训第一天感言
2014/03/06 职场文书
三方合作协议书范本
2014/04/18 职场文书
市场营销工作计划书
2014/05/06 职场文书
老公保证书
2015/01/17 职场文书
合作意向书范本
2019/04/17 职场文书
应届毕业生的自我评价
2019/06/21 职场文书
浅析CSS在DevTools 中架构演变
2021/10/05 HTML / CSS