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使用mysqldb连接数据库操作方法示例详解
Dec 03 Python
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
Apr 25 Python
Python mutiprocessing多线程池pool操作示例
Jan 30 Python
python爬虫 基于requests模块的get请求实现详解
Aug 20 Python
win10子系统python开发环境准备及kenlm和nltk的使用教程
Oct 14 Python
python lambda函数及三个常用的高阶函数
Feb 05 Python
Python发送手机动态验证码代码实例
Feb 28 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
Mar 10 Python
Pycharm安装第三方库失败解决方案
Nov 17 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
Dec 10 Python
解决numpy数组互换两行及赋值的问题
Apr 17 Python
超详细Python解释器新手安装教程
May 10 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
DC《小丑》11项提名领跑奥斯卡 Netflix成第92届奥斯卡提名最大赢家
2020/04/09 欧美动漫
德劲1102收音机的打理维修案例
2021/03/02 无线电
php随机输出名人名言的代码
2012/10/07 PHP
php fsockopen解决办法 php实现多线程
2014/01/20 PHP
ThinkPHP查询语句与关联查询用法实例
2014/11/01 PHP
php的RSA加密解密算法原理与用法分析
2020/01/23 PHP
js option删除代码集合
2008/11/12 Javascript
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
JavaScript返回网页中锚点数目的方法
2015/04/03 Javascript
Angular.js与Bootstrap相结合实现表格分页代码
2016/04/12 Javascript
浅析jQuery事件之on()方法绑定多个选择器,多个事件
2016/04/27 Javascript
小程序tab页无法传递参数的方法
2018/08/03 Javascript
angularjs1.5 组件内用函数向外传值的实例
2018/09/30 Javascript
Angular6 用户自定义标签开发的实现方法
2019/01/08 Javascript
8个有意思的JavaScript面试题
2019/07/30 Javascript
js实现选项卡效果
2020/03/07 Javascript
使用Python编写提取日志中的中文的脚本的方法
2015/04/30 Python
Python写入数据到MP3文件中的方法
2015/07/10 Python
python的paramiko模块实现远程控制和传输示例
2017/10/13 Python
python中Apriori算法实现讲解
2017/12/10 Python
详解Python中的动态属性和特性
2018/04/07 Python
使用pyecharts生成Echarts网页的实例
2019/08/12 Python
python 安装移动复制第三方库操作
2020/07/13 Python
基于Python的身份证验证识别和数据处理详解
2020/11/14 Python
HTML5拖放效果的实现代码
2016/11/17 HTML / CSS
网络通讯中,端口有什么含义,端口的取值范围
2012/11/23 面试题
工地门卫岗位职责
2013/12/30 职场文书
茶叶店创业计划书范文
2014/01/19 职场文书
广告艺术设计专业自荐书
2014/07/08 职场文书
党建工作目标管理责任书
2015/01/29 职场文书
团员个人年度总结
2015/02/26 职场文书
鉴史问廉观后感
2015/06/10 职场文书
数学复习课教学反思
2016/02/18 职场文书
创业者如何撰写出一份打动投资人的商业计划书?
2019/07/02 职场文书
Python爬虫之爬取最新更新的小说网站
2021/05/06 Python
Go语言基础map用法及示例详解
2021/11/17 Golang