zoukankan      html  css  js  c++  java
  • 使用xml.etree.ElementTree遍历xml所有节点

    转自 http://blog.csdn.net/yiluochenwu/article/details/23515923


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

    输出结果:

    1. [11'students', {}]  
    2. [22'student', {'age''35''name': u'u5218u5907''sex': u'u7537'}]  
    3. [32'student', {'age''38''name': u'u5415u5e03''sex': u'u7537'}]  
    4. [42'student', {'age''22''name': u'u8c82u8749''sex': u'u5973'}] 
  • 相关阅读:
    数据库面试知识点
    一文搞定数据仓库之拉链表,流水表,全量表,增量表
    Teach Yourself Programming in Ten Years——用十年教会自己编程
    成为一个喜鹊程序员
    查询数据表中最后5条数据
    新系统安装-centos7.4
    时间同步服务器chrony+PPTP
    memcached服务器
    jdk和Tomcat搭建
    Linux服务器-NFS
  • 原文地址:https://www.cnblogs.com/double12gzh/p/10166228.html
Copyright © 2011-2022 走看看