shopscor 发表于 2013-1-19 04:14:41

python ElementTree 基本读操作示例

python ElementTree 基本读操作示例
演示用XML文件:test.xml
view plaincopy to clipboardprint?
<?xml version="1.0" encoding="utf-8"?>
<root>
<person age="18">
    <name>hzj</name>
    <sex>man</sex>
</person>
<person age="19" des="hello">
    <name>kiki</name>
    <sex>female</sex>
</person>
</root>
<?xml version="1.0" encoding="utf-8"?>
<root>
<person age="18">
    <name>hzj</name>
    <sex>man</sex>
</person>
<person age="19" des="hello">
    <name>kiki</name>
    <sex>female</sex>
</person>
</root>
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.getchildren()
    print_node(lst_node_child)
         
    # 3 .find方法
    node_find = root.find('person')
    print_node(node_find)
      
    #4. findall方法
    node_findall = root.findall("person/name")
    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
页: [1]
查看完整版本: python ElementTree 基本读操作示例