2010-11-04 36 views
0

我只是想解決一個簡單的方法,打開,編輯和保存使用python的xml文件。python的簡單XML?

到目前爲止,我已經設法打開一個文件並將其寫入輸出。

我還沒有設法輕鬆打印出來,以便我知道任何給定對象中的內容,遍歷對象模型,編輯標記和屬性,或者將xml寫入文件。

from lxml import etree 
root = etree.parse('test.xml') 

print etree.tostring(root); 

我習慣於使用simpleXML for php,這是一件輕而易舉的事情。

請幫助,因爲我發現的文檔難以理解:(

謝謝:)

+0

-1這不是問題。一個問題就像「我如何[特定的東西]?我嘗試了X,但Y沒有工作/我得到了錯誤消息Z.」。而FYI,lxml *是Python最好最簡單的XML庫。我真的不知道你會得到什麼答案... – delnan 2010-11-04 19:05:14

+0

我希望能夠快速簡單地解釋如何使用xml來做到這一點,或者更好的選擇。 simpleXML在PHP中簡單地把DOM當作一個對象來對待(這也是一個漂亮的事情)。但是我無法找到一個簡單的方法來打開,編輯和保存xml文件,儘管在lxml文檔中做了很好的嘗試。對不起,問題不是更具體! – significance 2010-11-04 19:10:18

+0

我已經更新了我的答案。 – user225312 2010-11-04 19:17:50

回答

4

的LXML教程是好的,易於理解。看看here並試試看。過去需要一些時間,但與所有情況一樣,最初的步驟很困難。

另一個優秀的教程(和參考)我推薦的教程是John Shipman。你應該認真地給它一個閱讀。

我推薦:閱讀教程和Shipman的書。然後嘗試解析簡單的XML文件。

lxml值得借鑑。一旦你確實瞭解它,你就會喜歡它。 PS:我所說的全部是基於我個人的經驗。

編輯:根據你的評論,你應該使用this,而不是lxml。 Here是一個易於理解的教程。

+0

DOM一般來說是非常笨拙的,Python實現與ElementTree的實現相比是雙倍的... – delnan 2010-11-04 19:20:38

+0

@delnan:我建議lxml,但他似乎厭惡它。 – user225312 2010-11-04 19:23:41

+0

是的,lxml要容易得多。我同意。 – user225312 2010-11-04 19:27:41

2

給一個嘗試Amara,這是非常簡單的:

import amara 
doc = amara.parse('monty.xml') 
doc.monty.foo = u'bar' 
doc.monty.spam = u'[attr modified]' 
print doc.monty.foo 
+0

這實際上可能是我正在尋找...你知道如何將修改後的xml寫回monty.xml嗎? – significance 2010-11-04 21:55:05

+0

doc.xml(open('monty.xml','w')) – 2010-11-07 18:57:28