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 相关文章推荐
github配置使用指南
Nov 18 Python
python如何在终端里面显示一张图片
Aug 17 Python
python matplotlib中文显示参数设置解析
Dec 15 Python
用python实现的线程池实例代码
Jan 06 Python
Python 中字符串拼接的多种方法
Jul 30 Python
使用pandas把某一列的字符值转换为数字的实例
Jan 29 Python
六行python代码的爱心曲线详解
May 17 Python
python sklearn库实现简单逻辑回归的实例代码
Jul 01 Python
Python机器学习算法库scikit-learn学习之决策树实现方法详解
Jul 04 Python
Python使用Selenium模拟浏览器自动操作功能
Sep 08 Python
pycharm2020.1.2永久破解激活教程,实测有效
Oct 29 Python
Python之多进程与多线程的使用
Feb 23 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 分页函数multi() discuz
2009/06/21 PHP
Yii框架连表查询操作示例
2019/09/06 PHP
解密效果
2006/06/23 Javascript
解决jquery .ajax 在IE下卡死问题的解决方法
2009/10/26 Javascript
Jquery选择器 $实现原理
2009/12/02 Javascript
jcrop基本参数一览
2013/07/16 Javascript
js实现点击链接后窗口缩小并居中的方法
2015/03/02 Javascript
jQuery验证元素是否为空的两种常用方法
2015/03/17 Javascript
JS+CSS实现仿触屏手机拨号盘界面及功能模拟完整实例
2015/05/16 Javascript
javaScript中slice函数用法实例分析
2015/06/08 Javascript
JS实现的不规则TAB选项卡效果代码
2015/09/18 Javascript
BootStrap实用代码片段之一
2016/03/22 Javascript
jQuery实现手机自定义弹出输入框
2016/06/13 Javascript
javascript作用域、作用域链(菜鸟必看)
2016/06/16 Javascript
js删除Array数组中指定元素的两种方法
2016/08/03 Javascript
js removeChild 方法深入理解
2016/08/16 Javascript
实现一个简单的vue无限加载指令方法
2017/01/10 Javascript
Easyui笔记2:实现datagrid多行删除的示例代码
2017/01/14 Javascript
javascript 中iframe高度自适应(同域)实例详解
2017/05/16 Javascript
Vue.js中的图片引用路径的方式
2017/07/28 Javascript
JS使用正则表达式实现常用的表单验证功能分析
2020/04/30 Javascript
以Flask为例讲解Python的框架的使用方法
2015/04/29 Python
Python编程实现线性回归和批量梯度下降法代码实例
2018/01/04 Python
深入理解Python爬虫代理池服务
2018/02/28 Python
pyqt5 键盘监听按下enter 就登陆的实例
2019/06/25 Python
Python数据可视化:泊松分布详解
2019/12/07 Python
解决Tensorboard 不显示计算图graph的问题
2020/02/15 Python
解决安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示no Qt platform plugin的问题
2020/04/24 Python
Python爬虫抓取指定网页图片代码实例
2020/07/24 Python
泰国王权免税店官方网站:KingPower
2019/03/11 全球购物
大学生找工作推荐信范文
2013/11/28 职场文书
电力公司个人求职信范文
2014/02/04 职场文书
伦敦奥运会口号
2014/06/13 职场文书
国际贸易实务实训报告
2014/11/05 职场文书
2015年物业公司保洁工作总结
2015/10/22 职场文书
python使用PySimpleGUI设置进度条及控件使用
2021/06/10 Python