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列表的增删改查实例代码
Jan 30 Python
python中的内置函数max()和min()及mas()函数的高级用法
Mar 29 Python
Python Xml文件添加字节属性的方法
Mar 31 Python
python读写LMDB文件的方法
Jul 02 Python
python  logging日志打印过程解析
Oct 22 Python
python数据化运营的重要意义
Nov 25 Python
python如何判断IP地址合法性
Apr 05 Python
Django中从mysql数据库中获取数据传到echarts方式
Apr 07 Python
通过代码实例了解Python sys模块
Sep 14 Python
Python:__eq__和__str__函数的使用示例
Sep 26 Python
python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析
Apr 14 Python
Python  序列化反序列化和异常处理的问题小结
Dec 24 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
雄兵连:天使彦天使彦为爱折翼,彦和炙心同时念动的誓言!
2020/03/02 国漫
基于mysql的bbs设计(五)
2006/10/09 PHP
mysql5写入和读出乱码解决
2006/11/25 PHP
CI框架学习笔记(二) -入口文件index.php
2014/10/27 PHP
php实现的微信红包算法分析(非官方)
2015/09/25 PHP
php采集神器cURL使用方法详解
2016/02/19 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
javascript 清空form表单中某种元素的值
2009/12/26 Javascript
Jquery 的扩展方法总结
2011/10/01 Javascript
JQuery中操作Css样式的方法
2014/02/12 Javascript
JS实用的动画弹出层效果实例
2015/05/05 Javascript
再JavaScript的jQuery库中编写动画效果的指南
2015/08/13 Javascript
JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法
2016/04/18 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
2016/11/22 Javascript
网页中右键功能的实现方法之contextMenu的使用
2017/02/20 Javascript
Angular2中select用法之设置默认值与事件详解
2017/05/07 Javascript
详解Vue.js组件可复用性的混合(mixin)方式和自定义指令
2017/09/06 Javascript
使用vux实现上拉刷新功能遇到的坑
2018/02/08 Javascript
微信小程序实现的一键复制功能示例
2019/04/24 Javascript
手把手教你使用TypeScript开发Node.js应用
2019/05/06 Javascript
vue实现点击追加选中样式效果
2019/11/01 Javascript
jQuery实现飞机大战小游戏
2020/07/05 jQuery
python小技巧之批量抓取美女图片
2014/06/06 Python
Python实现删除文件中含“指定内容”的行示例
2017/06/09 Python
python 随机森林算法及其优化详解
2019/07/11 Python
python+rsync精确同步指定格式文件
2019/08/29 Python
django迁移文件migrations的实现
2020/03/31 Python
python 负数取模运算实例
2020/06/03 Python
ECCO俄罗斯官网:北欧丹麦鞋履及皮具品牌
2020/06/26 全球购物
总经理秘书的岗位职责
2013/12/27 职场文书
校企合作协议书
2014/04/16 职场文书
2014年创卫工作总结
2014/11/24 职场文书
治庸问责工作总结
2015/08/11 职场文书
Laravel中获取IP的真实地理位置
2021/04/01 PHP
Pytorch 如何实现LSTM时间序列预测
2021/05/17 Python
JS前端轻量fabric.js系列之画布初始化
2022/08/05 Javascript