我想使用python解析一個簡單的小型XML文件,但pyXML上的工作似乎已停止。如果可能,我想使用python 2.6。任何人都可以推薦一個可用於2.6的XML解析器嗎?Python中的XML解析
感謝
我想使用python解析一個簡單的小型XML文件,但pyXML上的工作似乎已停止。如果可能,我想使用python 2.6。任何人都可以推薦一個可用於2.6的XML解析器嗎?Python中的XML解析
感謝
如果是小而簡單,然後只需use the standard library:
from xml.dom.minidom import parse
doc = parse("filename.xml")
這將返回一個DOM樹實現標準Document Object Model API
如果以後需要做這樣的模式驗證複雜的事情或XPath查詢,然後我推薦第三方lxml module,它是流行的libxml2 C庫的封裝。
請問lxml是否符合您的需求?它是我轉向進行xml解析的第一個工具。
另外,Python 2.5+已經集成了etree。它實現了什麼相當於lxml的子集。當我需要etree沒有完全覆蓋的任何東西時,我使用etree進行簡單的XML處理和lxml。 –
幾年前,我寫了一個庫,用於處理結構化的 XML。它通過做出一些限制性假設使得XML更簡單。
您可以將XML用於類似於文字處理器文檔的東西,在這種情況下,您將XML標籤嵌入到整個場所中,在這種情況下,我的圖書館將不會好。
但是,如果您使用的是類似於配置文件的XML,我的庫相當方便。你定義了描述你想要的XML結構的類,一旦你完成了這些類,就有了一種方法來處理XML並解析它。實際的解析由xml.dom.minidom完成,但是我的庫提取數據並將其放入類中。
最好的部分是:你可以聲明一個「Collection」類型,它將成爲一個Python列表,其中包含零個或多個其他XML元素。這對Atom或RSS feeds這些東西來說非常棒(這是我設計庫的最初原因)。
這裏的網址:http://home.avvanta.com/~steveha/xe.html
我會很高興,如果您有任何回答問題。
對於大多數我的任務我已經使用了輕量級minidom命名DOM實現,從官方頁面:
from xml.dom.minidom import parse, parseString
dom1 = parse('c:\\temp\\mydata.xml') # parse an XML file by name
datasource = open('c:\\temp\\mydata.xml')
dom2 = parse(datasource) # parse an open file
dom3 = parseString('<myxml>Some data<empty/> some more data</myxml>')
謝謝!太容易了。 – Alex