2013-06-21 31 views
7

Tôi muốn cập nhật tệp xml với thông tin mới bằng cách sử dụng thư viện lxml. Ví dụ, tôi có mã này:Cách cập nhật tệp XML với lxml

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

nơi 'books.xml' tập tin, có nội dung này: http://www.w3schools.com/dom/books.xml

Tôi muốn cập nhật tập tin này với cuốn sách mới:

>>> 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>''') 

Câu hỏi của tôi là, làm thế nào tôi có thể cập nhật cây nguyên tố tree với cây new_entry và lưu tệp.

+1

: o Tôi xứng đáng -1 vì một lý do? – user2136786

Trả lời

8

Ở đây bạn đi, có được thư mục gốc của cây, thêm yếu tố mới của bạn, lưu các cây như là một chuỗi vào một tệp:

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

Cảm ơn Guillaume :) – user2136786

Các vấn đề liên quan