python:xml.etree.elementtree.ElemenTtree.write()声明标记

Bg1*_*987 15 python xml

我使用xml.etree.elementtree.Element创建了一个XML文档,并希望使用ElementTree.write()函数打印它,但出现的声明标记是

<?xml version='1.0' encoding='UTF-8'?>
Run Code Online (Sandbox Code Playgroud)

虽然我需要双引号.有没有办法改变它?

Ste*_*lke 6

我有同样的问题,查看ElementTree.py的代码并看到以下内容。

对于根标签(单引号):

        if method == "xml":
            write("<?xml version='1.0' encoding='%s'?>\n" % encoding)
Run Code Online (Sandbox Code Playgroud)

对于属性(双引号):

write(" %s=\"%s\"" % (qnames[k], v))
Run Code Online (Sandbox Code Playgroud)

它是这样硬编码的......

我将它(本地)更改为:

"<?xml version=\"1.0\" encoding=\"%s\"?>\n"
Run Code Online (Sandbox Code Playgroud)

所以现在每个属性都是双引号的。


Bg1*_*987 4

最终我使用了 tostring 函数并将 XML 附加到正确的标签,然后使用 python file.write 函数。它很丑陋(而且我对文件的实际编码撒了谎),但它有效。