我想在python中解析xml,但是作为字符串,不是从文件中获取的。有人可以帮我这么做吗?
答案 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');