在python中创建一个有<! - ?xml version =“xxx”的xml? - >?

时间:2013-10-28 07:43:44

标签: python xml

网上有很多关于如何使用python创建xml的例子。一个例子是:

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?

谢谢, 卡洛斯。

1 个答案:

答案 0 :(得分:2)

指定xml_declarationencoding

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是文件名,或者是   打开文件对象进行写入。 encoding是输出编码   (默认为US-ASCII)。 xml_declaration 控制是否有XML声明   应该添加到文件中。永远使用False,永远使用True   仅适用于US-ASCII或UTF-8(默认为None)。   default_namespace设置默认的XML命名空间(对于“xmlns”)。方法   是“xml”,“html”或“text”(默认为“xml”)。返回一个   编码的字符串。