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

    完!

  • 相关阅读:
    PHP 5.5.0 Alpha5 发布
    Ubuntu Touch 只是另一个 Android 皮肤?
    MariaDB 10 已经为动态列提供文档说明
    Percona Toolkit 2.1.9 发布,MySQL 管理工具
    Oracle Linux 6.4 发布
    Ruby 2.0.0 首个稳定版本(p0)发布
    Apache Pig 0.11.0 发布,大规模数据分析
    Node.js 0.8.21 稳定版发布
    红薯 MySQL 5.5 和 5.6 默认参数值的差异
    Django 1.5 正式版发布,支持 Python 3
  • 原文地址:https://www.cnblogs.com/itech/p/1961808.html
Copyright © 2011-2022 走看看