我已经使用xml.etree.elementtree.Element创建了一个XML文档,并希望使用ElementTree.write()函数打印它,但是输出的声明标记是
<?xml version='1.0' encoding='UTF-8'?>而我需要用双引号。有没有办法改变这一点?
发布于 2012-05-07 20:04:51
最后,我使用了tostring函数,并将XML附加到正确的标记,然后是python file.write函数。它很难看(我在文件的实际编码上撒谎),但它是有效的。
发布于 2016-06-27 20:14:50
我也遇到了同样的问题,查看了ElementTree.py的代码,发现如下所示。
对于根标记(单引号):
if method == "xml":
write("<?xml version='1.0' encoding='%s'?>\n" % encoding)对于属性(双引号):
write(" %s=\"%s\"" % (qnames[k], v))它是这样硬编码的.
我(在本地)将其更改为:
"<?xml version=\"1.0\" encoding=\"%s\"?>\n"所以现在每个属性都加了双引号。
发布于 2018-05-25 01:30:46
我和bg1987做了同样的事情。下面是我编写的函数,以防对某些人有用
def wrTmp(treeObject, filepath):
xml_str = ('<?xml version="1.0" encoding="UTF-8"?>' + '\n' + xml.etree.ElementTree.tostring(treeObject.getroot(), method='xml'))
with open(filepath, 'wb') as xml_file:
xml_file.write(xml_str)https://stackoverflow.com/questions/10471378
复制相似问题