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文件和目录操作方法大全(含实例)
Mar 12 Python
跟老齐学Python之使用Python查询更新数据库
Nov 25 Python
Saltstack快速入门简单汇总
Mar 01 Python
Python中使用asyncio 封装文件读写
Sep 11 Python
python常用函数详解
Sep 13 Python
关于Python 3中print函数的换行详解
Aug 08 Python
python 实现一次性在文件中写入多行的方法
Jan 28 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
Aug 04 Python
树莓派极简安装OpenCv的方法步骤
Oct 10 Python
Python3自定义json逐层解析器代码
May 11 Python
基于Python 函数和方法的区别说明
Mar 24 Python
Python OpenCV快速入门教程
Apr 17 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
德劲1107的电路分析与打磨
2021/03/02 无线电
编译php 5.2.14+fpm+memcached(具体操作详解)
2013/06/18 PHP
PHP数组排序函数合集 以及它们之间的联系分析
2013/06/27 PHP
php数组遍历类与用法示例
2019/05/24 PHP
获取DOM对象的几种扩展及简写
2006/10/09 Javascript
测试你的JS的掌握程度的代码
2009/12/09 Javascript
JavaScript arguments 多参传值函数
2010/10/24 Javascript
基于jquery的图片的切换(以数字的形式)
2011/02/14 Javascript
利用js的Node遍历找到repeater的一个字段实例介绍
2013/04/25 Javascript
探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行
2013/07/09 Javascript
JS增加行复制行删除行的实现代码
2013/11/09 Javascript
javascript 模拟坦克大战游戏(html5版)附源码下载
2014/04/08 Javascript
JavaScript常用脚本汇总(三)
2015/03/04 Javascript
详解jQuery中的empty、remove和detach
2016/04/11 Javascript
浅谈JavaScript的内置对象和浏览器对象
2016/06/03 Javascript
AngularJS入门教程之控制器详解
2016/07/27 Javascript
JavaScript 随机验证码的生成实例代码
2016/09/22 Javascript
详解利用 Express 托管静态文件的方法
2017/09/18 Javascript
使用原生js封装的ajax实例(兼容jsonp)
2017/10/12 Javascript
Node之简单的前后端交互(实例讲解)
2017/11/14 Javascript
微信小程序判断用户是否需要再次授权获取个人信息
2019/07/18 Javascript
python按照多个字符对字符串进行分割的方法
2015/03/17 Python
基于scrapy实现的简单蜘蛛采集程序
2015/04/17 Python
基于hashlib模块--加密(详解)
2017/06/21 Python
Sanic框架配置操作分析
2018/07/17 Python
Python图像处理之颜色的定义与使用分析
2019/01/03 Python
Python3利用print输出带颜色的彩色字体示例代码
2019/04/08 Python
python numpy存取文件的方式
2020/04/01 Python
python shutil文件操作工具使用实例分析
2019/12/25 Python
html5 Canvas画图教程(9)—canvas中画出矩形和圆形
2013/01/09 HTML / CSS
喝酒检查书范文
2014/02/23 职场文书
校园环保标语
2014/06/13 职场文书
医德医风自我评价
2014/09/19 职场文书
四风问题对照检查整改措施思想报告
2014/10/05 职场文书
公司保洁员岗位职责
2015/02/13 职场文书
ubuntu安装jupyter并设置远程访问的实现
2022/03/31 Python