是否可以将XML文件中的数据存储到python中的列表中。例如,我有一个XML文件,其中包含以下内容:
<brochure>
<onlinePath>http://EEE</onlinePath>
<downloadPath>http://YYY</downloadPath>
<Name>ABC</Name>
<AAA>
<P>JPG</P>
<Q>JPG</Q>
</AAA>
</brochure>
<brochure>
<onlinePath>http://EKK</onlinePath>
<downloadPath>http://XXX</downloadPath>
<Name>DEF</Name>
<AAA>
<P>JPG</P>
<Q>JPG</Q>
</AAA>
</brochure>
是否可以存储到python列表中,如:
onlinePath = ("http://EEE", "http://EKK")
Name = ("ABC", "DEF")
答案 0 :(得分:7)
import lxml
xml = """
<brochures>
<brochure>
<onlinePath>http://EEE</onlinePath>
<downloadPath>http://YYY</downloadPath>
<Name>ABC</Name>
<AAA>
<P>JPG</P>
<Q>JPG</Q>
</AAA>
</brochure>
<brochure>
<onlinePath>http://EKK</onlinePath>
<downloadPath>http://XXX</downloadPath>
<Name>DEF</Name>
<AAA>
<P>JPG</P>
<Q>JPG</Q>
</AAA>
</brochure>
</brochures>
"""
root = lxml.etree.fromstring(xml)
mylist = root.xpath('//brochure/onlinePath/text()')
结果
['http://EEE', 'http://EKK']
注意:
我将你的xml包装在&lt; brochures&gt;&lt; / brochures&gt;使它成为树而不是森林(即单根节点);
如果要从文件而不是字符串中读取,请使用lxml.etree.parse()而不是lxml.etree.fromstring()
答案 1 :(得分:4)
休的解决方案很好。这是一个使用ElementTree的变体(使用Python 2.6测试):
from xml.etree import ElementTree
tree = ElementTree.parse("yourfile.xml")
olp = tree.findall("//onlinePath")
mylist = [t.text for t in olp]
答案 2 :(得分:1)
是的,很有可能。有两个图书馆可以帮助您:ElementTree和lxml。看看他们。
答案 3 :(得分:0)
我不认为它可以将它存储在列表中它可以将它存储在词典中,因为它们具有键:值using expat for xml
但可以查看此处的条目
答案 4 :(得分:0)
对于像这样的简短xml文件,我建议你minidom。
答案 5 :(得分:0)