python - 如何使用 xml.etree.ElementTree 编写 XML 声明

标签 python xml elementtree

我正在使用 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/

相关文章:

python - 如何为多个Python版本和平台构建编译模块

java - 将 XML 数据转储到 MySQL

c# - Azure - 更新 BLOB 存储中的现有 xml 文件

python - ElementTree模块分离xml内容

python - 如何告诉 lxml.etree.tostring(element) 不要在 python 中编写 namespace ?

从 Java 程序员的角度看 Python OOP

python - 使用 UserProfile 创建信号时,Django Rest Framework 重复键值违反唯一约束

python - Pandas:将 IP 解析为国家/地区的最快方法

python - 获取 xml 元素的文本不起作用 : AttributeError: 'NoneType' object has no attribute 'findall'

python etree 插入、追加和子元素