• python类库31[使用xml.etree.ElementTree读写xml]


    一 基本知识
    1、插入节点
    Element.insert(index, element) 、Element(tag[, attrib][, **extra]) 、SubElement(parent, tag[, attrib[, **extra]]) 、Element.append(subelement)
    2、删除节点
    Element.remove(subelement) 删除一个节点、Element.clear()删除该节点下所有子节点
    3、在节点中插入属性
    Element.set(key, value)

    4、查找节点

    a) Element.getiterator   b) Element.getchildren   c) Element.find   d) Element.findall

    二 读取xml

    1)xml为

    <?xml version="1.0" encoding="UTF-8"?>
     
    <employees> 
      
    <employee id = '1'> 
        
    <name>linux</name>
        
    <age>30</age>
      
    </employee>
      
    <employee id = '2'> 
        
    <name>windows</name>
        
    <age>20</age>
      
    </employee>
     
    </employees>

    2)python脚本为

    from xml.etree import ElementTree

    def print_node(node):
        
    print "====================================="
        
    for key,value in node.items():
          
    print "%s:%s" % (key, value)   
        
    for subnode in node.getchildren():
          
    print "%s:%s" % (subnode.tag, subnode.text)   

    def read_xml(text = '', xmlfile = ''):
        
    #root = ElementTree.parse(xmlfile)
        root = ElementTree.fromstring(text)
        
        
    # 1 getiterator([tag=None]) 
        # only elements whose tag equals tag are returned from the iterator
        eitor = root.getiterator("employee")
        
    for e in eitor:
            print_node(e)
        
        
    # 2 getchildren()
        # Returns all subelements
        eitor = root.getchildren()
        
    for e in eitor:
            print_node(e)  
        
        
    # 3 findall(match) 
        # Finds all subelements matching match. 
        # match may be a tag name or path. Returns an iterable yielding all matching elements  
        node_findall = root.findall("employee")
        
    for e in node_findall:
            print_node(e)

        
    # 4 find(match) 
        # Finds the first subelement matching match. 
        # match may be a tag name or path. Returns an element instance or None 
        node_find = root.find('employee')
        print_node(node_find)
        

    if __name__ == '__main__':
        read_xml(open(
    "employees.xml").read()) 

    参考:

    http://blog.csdn.net/kiki113/archive/2009/04/06/4052584.aspx

    完!

  • 相关阅读:
    install cygwin
    Case When PK PIVOT
    SQL Server 2012 Features
    XMLHttpRequest 使用概括
    Html DOM 常用属性和方法
    Rewrite Path in Asp.Net MVC Project
    cefsharp
    线程
    ftp 相关知识集合
    数据库知识集合
  • 原文地址:https://www.cnblogs.com/itech/p/1961808.html
Copyright © 2020-2023  润新知