加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

使用xml.etree.ElementTree读写xml

(2011-04-25 17:24:50)
标签:

it

分类: Linux

一 基本知识 
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)
    
    
# getiterator([tag=None]) 
    # only elements whose tag equals tag are returned from the iterator
    eitor = root.getiterator("employee")
    
for in eitor:
        print_node(e)
    
    
# getchildren()
    # Returns all subelements
    eitor = root.getchildren()
    
for in eitor:
        print_node(e)  
    
    
# findall(match) 
    # Finds all subelements matching match. 
    # match may be tag name or path. Returns an iterable yielding all matching elements  
    node_findall = root.findall("employee")
    
for in node_findall:
        print_node(e)

    
# find(match) 
    # Finds the first subelement matching match. 
    # match may be 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()) 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有