2014-04-28 112 views
2

我使用ElementTree來創建,解析和修改XML文件和對象。我創建這樣的樹:將元素寫入文件

import xml.etree.ElementTree as etree 
foo = etree.Element("root") 
etree.SubElement(foo, "extra", { "id": "50" }) 

然後,我想寫這個文件。根據documentation,我應該使用ElementTree這個對象,但是如何從Element創建那個對象呢?

我試圖

e = etree.ElementTree(foo) 
e.write(filename) 

,但不工作:

TypeError: must be str, not bytes

+0

什麼是'filename'? – alecxe

+0

@alecxe打開的文件 –

回答

1

你打開的文件應與b(二進制)標誌被打開:

import xml.etree.ElementTree as etree 

foo = etree.Element("root") 
etree.SubElement(foo, "extra", { "id": "50" }) 
e = etree.ElementTree(foo) 
with open('test.xml', 'wb') as f: 
    e.write(f) 

或只是通過一個文件名/路徑爲write()

e.write('test.xml') 
+0

或者我不打開它,只是提供完整路徑...... –

+0

@BartFriederichs是的,或者只是一個文件名字符串。 – alecxe