2010-04-30 91 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)。