2010-04-30 93 views
2

如何使用lxml将xml转换为Python数据结构?使用lxml将xml转换为Python数据结构

我搜索了高和低,但找不到任何东西。

输入例

<ApplicationPack> 
    <name>Mozilla Firefox</name> 
    <shortname>firefox</shortname> 
    <description>Leading Open Source internet browser.</description> 
    <version>3.6.3-1</version> 
    <license name="Firefox EULA">http://www.mozilla.com/en-US/legal/eula/firefox-en.html</license> 
    <ms-license>False</ms-license> 
    <vendor>Mozilla Foundation</vendor> 
    <homepage>http://www.mozilla.org/firefox</homepage> 
    <icon>resources/firefox.png</icon> 
    <download>http://download.mozilla.org/?product=firefox-3.6.3&amp;os=win&amp;lang=en-GB</download> 
    <crack required="0"/> 
    <install>scripts/install.sh</install> 
    <postinstall name="Clean Up"></postinstall> 
    <run>C:\\Program Files\\Mozilla Firefox\\firefox.exe</run> 
    <uninstall>c:\\Program Files\\Mozilla Firefox\\uninstall\\helper.exe /S</uninstall> 
    <requires name="autohotkey" /> 
</ApplicationPack> 
+3

介绍给我们一个期望的输入和输出的例子吗? – badp 2010-04-30 21:10:14

+0

提交示例输入 – 2010-05-02 20:18:36

回答

5
>>> from lxml import etree 
>>> treetop = etree.fromstring(anxmlstring) 

字符串中的XML转换为Python数据结构,也是如此

>>> othertree = etree.parse(somexmlurl) 

其中somexmlurl是到本地XML文件或路径网络上的XML文件的URL。

这些函数提供的Python数据结构(称为“元素树”,其中etree模块名称)已有详细记录here - 所讨论的Python数据结构支持的所有类,函数,方法等。顺便说一下,它与Python标准库中支持的一个非常相似。

如果你想要一些不同的Python数据结构,你必须通过Python数据结构限于lxml返回到走路,如上所述,并建立您的不同的数据结构自己基于这样收集的信息; lxml不能专门帮助你,除了通过提供几个帮助程序来查找所返回的解析结构中的信息以便收集所述信息是一项灵活,简单的任务(同样参见上面的文档URL)。