当前位置: 首页 > 面试题库 >

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

洪逸清
2023-03-14
问题内容

我正在使用Python在Python中生成XML文档ElementTree,但是在转换为纯文本时,该tostring函数不包含XML声明。

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" ?>

但是,似乎没有任何记录的方式来执行此操作。

有没有合适的方法来呈现XML声明ElementTree


问题答案:

我很惊讶地发现似乎没有办法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

看到这个问题。即使那样,我认为如果不自己编写,就无法获得“独立”属性。



 类似资料:
  • Parsing an XML Document Traversing the Parsed Tree Finding Nodes in a Document Parsed Node Attributes Watching Events While Parsing Creating a Custom Tree Builder Parsing Strings Building Documents Wi

  • 问题内容: 我并不是要特别解决任何问题,而是要努力学习球衣。 我有一个标记为这样的实体类: 以及相应的球衣服务 给出正确的XML响应。假设我想编写一个MessageBodyWriter,它复制相同的行为,并产生一个XML响应,我该怎么做? 通过使用@Provider批注进行标记,我可以看到邮件正文编写器已正确调用。 当调用writeTo时,对象o是一个Vector,类型GenericType是一个

  • 如何使用1.1 XML模式定义? 这是我的开始:

  • 我想为XML文件编写XML模式: minOccurs为1,maxOccurs为无界。 必须具有xs:integer类型,但如何处理 ?我不想写 。

  • 问题内容: 以下代码将频率为400Hz的简单正弦写入单声道WAV文件。为了产生 立体声 WAV文件,应如何更改此代码。第二个频道应处于不同的频率。 问题答案: 使用另一个频率/频道set来构建一个并行列表,并在输出循环中将其用作标题子句,并使用两个调用来创建主体- 一个用于,一个用于。IOW,文件中两个通道的对应帧“交替”。 例如参见本页面的所有可能的WAV文件格式的全面描述,我引用: 多通道数字