Python xml.etree.ElementTree traversal of all XML nodes
XML file Contents:
<students>
<student name= ' Liu Bei ' sex= ' man ' age= '/> <student ' lv bu ' name= ' sex= '
man '
<student name= ' Diao Chan ' sex= ' female ' age= '/>
</students>
Code:
#-*-coding:utf-8-*-
# Read data from File
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 to Child in
Children_node:
Walkdata (Child, Level + 1, result_list)
return
#获得原始数据
#out:
#[
# #ID, level, Attr map< c23/># [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
Output results:
[1, 1, ' Students ', {}]
[2, 2, ' student ', {' age ': '], ' name ': U ' \u5218\u5907 ', ' Sex ': U ' \u7537 '}]
[3, 2, ' student ', {' age ': '], ' name ': U ' \u5415\u5e03 ', ' Sex ': U ' \u7537 '}]
[4, 2, ' student ', {' age ': ' n ', ' name ': U ' \u8c82\u8749 ', ' Sex ': U ' \u5973 '}]
Thank you for reading, I hope to help you, thank you for your support for this site!