【发布时间】:2017-10-03 14:39:31
【问题描述】:
当我启动此代码时,他生成了包含 xml 版本 的 xml 文件,我尝试使用 xml_declaration=False 排除此行,但出现错误:
TypeError: prettify() 得到了一个意外的关键字参数“编码”
如何从我的 xml 文件中删除此字符串?
from xml.etree import ElementTree
from xml.dom import minidom
from lxml.etree import Element, SubElement
def prettify(templateXml):
rough_string = ElementTree.tostring(templateXml)
reparsed = minidom.parseString(rough_string)
return reparsed.toprettyxml(indent="\t")
top = Element('Options')
element = SubElement(top, 'Some ID')
element.text = ' '
element = SubElement(top, 'Test0')
element.text = 'Some text'
SubElement(top, 'Test1', {'enabled': 'true', 'Values': 'true'})
SubElement(top, 'Test2', {'enabled': 'true', 'Values': 'true'})
SubElement(top, 'Test3', {'enabled': 'true', 'Values': 'true'})
SubElement(top, 'Test4', {'enabled': 'true', 'Test5': 'true', 'Zero': 'true'})
SubElement(top, 'Test6', {'enabled': 'true', 'Values': 'true', 'Zero': 'true'})
SubElement(top, 'Test7', {'enabled': 'true', 'Values': 'true', 'Zero': 'true'})
SubElement(top, 'Test8', {'enabled': 'true', 'Values': 'true', 'Zero': 'true'})
with open("output/some_xml_file.xml", 'w') as f:
f.write(prettify(top))
【问题讨论】:
-
你需要告诉 write 或 prettify 方法你想使用什么编码我怀疑。看看这些方法的参数我敢打赌有一个参数编码,我会把它设置为“UTF-8”
-
return reparsed.toprettyxml(indent="\t", encoding='UTF-8') 一样只加了