首页 > 编程语言 > 详细

python处理xml文件

时间:2016-12-21 15:55:06      阅读:219      评论:0      收藏:0      [点我收藏+]

参考:https://docs.python.org/2/library/xml.etree.elementtree.html

例子:

<?xml version="1.0"?>
<data>
    <country name="Liechtenstein">
        <rank>1</rank>
        <year>2008</year>
        <gdppc>141100</gdppc>
        <neighbor name="Austria" direction="E"/>
        <neighbor name="Switzerland" direction="W"/>
    </country>
    <country name="Singapore">
        <rank>4</rank>
        <year>2011</year>
        <gdppc>59900</gdppc>
        <neighbor name="Malaysia" direction="N"/>
    </country>
    <country name="Panama">
        <rank>68</rank>
        <year>2011</year>
        <gdppc>13600</gdppc>
        <neighbor name="Costa Rica" direction="W"/>
        <neighbor name="Colombia" direction="E"/>
    </country>
</data>

1、解析xml文件

>>> os.getcwd()
‘D:\\workspace\\testpython‘
>>> import xml.etree.ElementTree as ET
>>> tree = ET.parse(‘test.xml‘)
>>> root = tree.getroot()
>>> print root
<Element ‘data‘ at 0x1d2a8b0>
>>> print tree
<xml.etree.ElementTree.ElementTree object at 0x01D2A9D0>
>>> root.tag
‘data‘
>>> root.attrib
{}
>>> #遍历子节点
>>> for child in root:
    print child.tag,child.attrib

    
country {‘name‘: ‘Liechtenstein‘}
country {‘name‘: ‘Singapore‘}
country {‘name‘: ‘Panama‘}
>>> root[0].text
‘\n        ‘
>>> root[0][1].text
‘2008‘
>>> root[1][3].text
>>> root[1][2].text
‘59900‘

2、查找元素

>>> #查询元素
>>> for neighbor in root.iter(‘neighbor‘):
    print neighbor.attrib

    
{‘direction‘: ‘E‘, ‘name‘: ‘Austria‘}
{‘direction‘: ‘W‘, ‘name‘: ‘Switzerland‘}
{‘direction‘: ‘N‘, ‘name‘: ‘Malaysia‘}
{‘direction‘: ‘W‘, ‘name‘: ‘Costa Rica‘}
{‘direction‘: ‘E‘, ‘name‘: ‘Colombia‘}
>>> root.iter(‘neighbor‘)
<generator object iter at 0x01D3CF30>
>>> root.findall(‘country‘)
[<Element ‘country‘ at 0x1d2aa90>, <Element ‘country‘ at 0x1d2ad30>, <Element ‘country‘ at 0x1d2af10>]
>>> for country in root.findall(‘country‘): #element.findall()查询当前元素的子元素
    rank=country.find(‘rank‘).text  #element.find()查询指定标签的第一个子元素,element.text获取元素的内容
    name=country.get(‘name‘)  #element.get()获取元素的属性值
    print name,rank

    
Liechtenstein 1
Singapore 4
Panama 68

3、修改xml文件

 

python处理xml文件

原文:http://www.cnblogs.com/apple2016/p/6207962.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!