我正在使用 ElementTree
在 Python 中生成 XML 文档,但 tostring
函数不包含 XML declaration转换为明文时。
from xml.etree.ElementTree import Element, tostring
document = Element('outer')
node = SubElement(document, 'inner')
node.NewValue = 1
print tostring(document) # Outputs "<outer><inner /></outer>"
我需要我的字符串包含以下 XML 声明:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
但是,似乎没有任何记录的方法可以做到这一点。
是否有正确的方法在 ElementTree
中呈现 XML 声明?
最佳答案
我惊讶地发现似乎没有办法使用ElementTree.tostring()
。但是,您可以使用 ElementTree.ElementTree.write()
将 XML 文档写入假文件:
from io import BytesIO
from xml.etree import ElementTree as ET
document = ET.Element('outer')
node = ET.SubElement(document, 'inner')
et = ET.ElementTree(document)
f = BytesIO()
et.write(f, encoding='utf-8', xml_declaration=True)
print(f.getvalue()) # your XML file, encoded as UTF-8
参见this question 。即使如此,我认为如果不自己编写前缀,您也无法获得“独立”属性。
关于python - 如何使用 xml.etree.ElementTree 编写 XML 声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54994774/