python解析xml文本

时间:2011-02-16 01:39:21

标签: python xml

我想在python中解析xml,但是作为字符串,不是从文件中获取的。有人可以帮我这么做吗?

4 个答案:

答案 0 :(得分:8)

从文件中,您通常可以将其作为

from xml.dom import minidom                                          
xmldoc = minidom.parse('~/diveintopython/common/py/kgp/binary.xml')  

对于字符串,您可以将其更改为

from xml.dom import minidom                                          
xmldoc = minidom.parseString( Your string goes here )  

答案 1 :(得分:3)

您可以使用:xml.dom.minidom.parseString(text)

  

此方法为字符串创建一个StringIO对象,并将其传递给parse()。

您也可以使用相同的技术将StringIO用于需要类文件对象的任何其他XML解析器。

import StringIO
your_favourite_xml_parser.parse(StringIO.StringIO('<xml>...</xml>'))

答案 2 :(得分:2)

您也可以使用(xml.etree.cElementTree)。

import xml.etree.cElementTree as ET

aElement = ET.fromstring('<Root id="UUID_1"><Item id="id_Item" /></Root>')

See Python help document
Each element has a number of properties associated with it:
  a tag which is a string identifying what kind of data this element represents (the element type, in other words). 
  a number of attributes, stored in a Python dictionary. 
  a text string. 
  an optional tail string. 
  a number of child elements, stored in a Python sequence 

答案 3 :(得分:1)

您也可以使用lxml。我的启动(http://dealites.com)每天都涉及很多XML处理。我已经尝试了python中几乎所有的xml库。 lxml是可用于xml处理的最佳库。

你也可以试试美味的汤。它非常适合HTML解析,但却是lxml的一个很好的替代方案。

lxml示例:

from lxml import etree;

parsedfeed = etree.xml('your xml here');

美丽的汤例子:

from BeautifulSoup import BeautifulStoneSoup;

soup = BeautifulStoneSoup('your xml here');