python 处理xml

本文介绍了一个使用Python解析XML文件的脚本,包括如何读取、打印节点信息及利用不同方法查找节点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/usr/bin/python linux中指明脚本运行的解释器
# -*- coding:utf-8 -*- 或者 # coding:utf-8
str = '''
<?xml version="1.0" encoding="utf-8"?>
<root>
 <person age="18">
    <name>name_text18</name>
    <sex>sex_text18</sex>
 </person>
 <person age="19" des="hello">
    <name>name_text19</name>
    <sex>sex_text19</sex>
 </person>
</root> 
'''
from xml.etree import ElementTree
class MyXmlParse:
    """ A xml parse class """
    def __init__(self):
        print self.__doc__
    def print_node(self,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(self,text):
        '''读取xml内容'''
        root = ElementTree.fromstring(text)

        # 通过getiterator
        list_node = root.getiterator("person")
        for node in list_node:
            self.print_node(node)

        # 通过getchildren
        list_node_child = list_node[0].getchildren()[0]
        self.print_node(list_node_child)

        # find方法
        node_find = root.find('person')
        self.print_node(node_find)

        # findall方法
        node_findall = root.findall("person/name")[1]
        self.print_node(node_findall)
    #if __name__ == '__main__':
        #self.read_xml('')
obj = MyXmlParse()
obj.read_xml(str)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值