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

 

完!

你可能感兴趣的:(element)