Chinaunix首页 | 论坛 | 博客
  • 博客访问: 313160
  • 博文数量: 103
  • 博客积分: 1590
  • 博客等级: 上尉
  • 技术积分: 1075
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-02 10:17
文章分类

全部博文(103)

文章存档

2013年(32)

2012年(7)

2010年(64)

我的朋友

分类: Python/Ruby

2010-02-19 23:41:42

python ElementTree 基本读操作示例
演示用XML文件:test.xml
view plaincopy to clipboardprint?
 
 
  
    hzj 
    man 
 
 
  
    kiki 
    female 
 
 
 


 
    hzj
    man
 

 
    kiki
    female
 

1.加载xml文件
    加载XML文件共有2种方法,一是加载指定字符串,二是加载指定文件
2.获取element的方法
  a) 通过getiterator
  b) 过 getchildren
  c) find方法
  d) findall方法
示例如下:
view plaincopy to clipboardprint?
#-*- coding:utf-8 -*-  
from xml.etree import ElementTree  
def print_node(node):  
    '''''打印结点基本信息''' 
    print "==============================================" 
    print "node.attrib:%s" % node.attrib  
    if node.attrib.has_key("age") > 0 :  
        print "node.attrib['age']:%s" % node.attrib['age']  
    print "node.tag:%s" % node.tag  
    print "node.text:%s" % node.text  
def read_xml(text):  
    '''''读xml文件''' 
    # 加载XML文件(2种方法,一是加载指定字符串,二是加载指定文件)      
    # root = ElementTree.parse(r"D:\test.xml")  
    root = ElementTree.fromstring(text)  
      
    # 获取element的方法  
    # 1 通过getiterator   
    lst_node = root.getiterator("person")  
    for node in lst_node:  
        print_node(node)  
          
    # 2通过 getchildren  
    lst_node_child = lst_node[0].getchildren()[0]  
    print_node(lst_node_child)  
          
    # 3 .find方法  
    node_find = root.find('person')  
    print_node(node_find)  
      
    #4. findall方法  
    node_findall = root.findall("person/name")[1]  
    print_node(node_findall)  
      
if __name__ == '__main__':  
    # read_xml(open("test.xml").read())  
    write_xml(open("test.xml").read()) 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/kiki113/archive/2009/04/06/4052584.aspx
阅读(724) | 评论(0) | 转发(0) |
0

上一篇:python class

下一篇:[zz]python expat 解析xml

给主人留下些什么吧!~~