在python中解析XML文件

时间:2012-06-14 07:12:21

标签: python xml-parsing

我有一个XML文件,例如:

<?xml version="1.0" encoding="utf-8"?>
<result>
  <data>
    <_0>stream1</_0>
    <_1>file</_1>
    <_2>livestream1</_2>
  </data>
</result>

我用过

xmlTag = dom.getElementsByTagName('data')[0].toxml()
xmlData=xmlTag.replace('<data>','').replace('</data>','')

我得到了xmlData

<_0>stream</_0>
<_1>file</_1>
<_2>livestream1</_2>

但我需要值stream,file,livestream1等。

怎么做?

2 个答案:

答案 0 :(得分:2)

我建议使用ElementTree。它比通常的DOM实现更快,我认为它也更优雅。

from xml.etree import ElementTree

#assuming xml_string is your XML above
xml_etree = ElementTree.fromstring(xml_string)
data = xml_etree.find('data')
for elem in data:
    print elem.text

输出将是:

stream1
file
livestream1

答案 1 :(得分:1)

有关lxml和xpath:

的操作方法,请参阅
from lxml import etree
doc = etree.fromstring(xml_string)
for elem in doc.xpath('//data/*'):
    print elem.text

输出应该相同:

stream1
file
livestream1