当前位置:   article > 正文

[python]使用xml.etree.ElementTree遍历xml所有节点_xml.etree.elementtree遍历所有标签

xml.etree.elementtree遍历所有标签
XML文件内容:

  1. <students>
  2. <student name='刘备' sex='男' age='35'/>
  3. <student name='吕布' sex='男' age='38'/>
  4. <student name='貂蝉' sex='女' age='22'/>
  5. </students>

代码:

  1. #-*- coding: UTF-8 -*-
  2. # 从文件中读取数据
  3. import xml.etree.ElementTree as ET
  4. #全局唯一标识
  5. unique_id = 1
  6. #遍历所有的节点
  7. def walkData(root_node, level, result_list):
  8. global unique_id
  9. temp_list =[unique_id, level, root_node.tag, root_node.attrib]
  10. result_list.append(temp_list)
  11. unique_id += 1
  12. #遍历每个子节点
  13. children_node = root_node.getchildren()
  14. if len(children_node) == 0:
  15. return
  16. for child in children_node:
  17. walkData(child, level + 1, result_list)
  18. return
  19. #获得原始数据
  20. #out:
  21. #[
  22. # #ID, Level, Attr Map
  23. # [1, 1, {'ID':1, 'Name':'test1'}],
  24. # [2, 1, {'ID':1, 'Name':'test2'}],
  25. #]
  26. def getXmlData(file_name):
  27. level = 1 #节点的深度从1开始
  28. result_list = []
  29. root = ET.parse(file_name).getroot()
  30. walkData(root, level, result_list)
  31. return result_list
  32. if __name__ == '__main__':
  33. file_name = 'test.xml'
  34. R = getXmlData(file_name)
  35. for x in R:
  36. print x
  37. pass

输出结果:

  1. [1, 1, 'students', {}]
  2. [2, 2, 'student', {'age': '35', 'name': u'\u5218\u5907', 'sex': u'\u7537'}]
  3. [3, 2, 'student', {'age': '38', 'name': u'\u5415\u5e03', 'sex': u'\u7537'}]
  4. [4, 2, 'student', {'age': '22', 'name': u'\u8c82\u8749', 'sex': u'\u5973'}]


本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/261572
推荐阅读
相关标签
  

闽ICP备14008679号