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

 

完!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值