2013-06-21 5 views
7

lxmlライブラリを使用してxmlファイルを新しい情報で更新したいと考えています。例えば が、私はこのコードを持っている:http://www.w3schools.com/dom/books.xmllxmlでXMLファイルを更新するには

私は新しい本でこのファイルを更新したい:

>>> new_entry = etree.fromstring('''<book category="web" cover="paperback"> 
... <title lang="en">Learning XML 2</title> 
... <author>Erik Ray</author> 
... <year>2006</year> 
... <price>49.95</price> 
... </book>''') 

>>> from lxml import etree 
>>> 
>>> tree = etree.parse('books.xml') 

'books.xmlという' ファイルを、このコンテンツを持っています私の質問は、tree要素ツリーをnew_entryツリーで更新してファイルを保存するにはどうすればいいですか?

+1

:私はいくつかの理由で-1に値するoを? – user2136786

答えて

8

ここに行く、ファイルに文字列として木を保存し​​、新しい要素を追加し、ツリーのルートを取得する:

from lxml import etree 

tree = etree.parse('books.xml') 

new_entry = etree.fromstring('''<book category="web" cover="paperback"> 
<title lang="en">Learning XML 2</title> 
<author>Erik Ray</author> 
<year>2006</year> 
<price>49.95</price> 
</book>''') 

root = tree.getroot() 

root.append(new_entry) 

f = open('books-mod.xml', 'w') 
f.write(etree.tostring(root, pretty_print=True)) 
f.close() 
+1

ありがとうGuillaume :) – user2136786

関連する問題