zoukankan      html  css  js  c++  java
  • 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

    完!

  • 相关阅读:
    visual studio 2013 中配置OpenCV2.4.13 姿势
    全栈技能图谱
    Lua 基础
    Lua手动编译姿势
    字符串专题:几种奇怪的算法
    字符串专题:KMP POJ 3561
    字符串专题:后缀数组
    字符串专题:map POJ 1002
    2015安徽省赛 G.你来擒孟获
    求方程解问题
  • 原文地址:https://www.cnblogs.com/itech/p/1961808.html
Copyright © 2011-2022 走看看