2013-10-28 3 views
0

В Интернете есть много примеров того, как создать xml с помощью python. An примеров является:создать xml в python с <? Xml version = "xxx"?>?

import elementtree.ElementTree as ET 

root = ET.Element("root") 
doc = ET.SubElement(root, "doc") 

field1 = ET.SubElement(doc, "field1") 
field1.set("name", "blah") 
field1.text = "some value1" 

field2 = ET.SubElement(doc, "field2") 
field2.set("name", "asdfasd") 
field2.text = "some vlaue2" 

tree = ET.ElementTree(root) 

tree.write("filename.xml") 

Но это создает документ, начиная с

<root> 

и не с

<?xml version="xxx"?> 

Как я могу добавить немного

<?xml version="xxx"?> 

к XML?

Thanks, Carlos.

+0

Возможный дубликат [Python - Дерево элементов удаляет декларацию XML] (http://stackoverflow.com/questions/12612648/python-element-tree-is-removing-the-xml-declaration) –

ответ

2

Укажите xml_declaration и encoding:

tree.write("filename.xml", xml_declaration=True, encoding='utf-8') 

По ElementTree.write documentation:

write(file, encoding="us-ascii", xml_declaration=None, default_namespace=None, method="xml")

Записывает дерева элементов в файл, в формате XML. file - это имя файла или файл , открытый для записи. кодирование - это выходное кодирование (по умолчанию используется US-ASCII). xml_declaration Элементы управления, если в файл добавлено объявление XML . Использовать False для никогда, True всегда, Нет, если не US-ASCII или UTF-8 (по умолчанию None). default_namespace устанавливает пространство имен XML по умолчанию (для «xmlns»). метод - это либо «xml», «html», либо «text» (по умолчанию «xml»). Возвращает закодированную строку .

Смежные вопросы