如何使用 minidom 删除 XML 中的单个开始或结束标记

How to delete a single opening or closing tag in an XML using minidom

我上周发了 this 帖子,但没有收到任何回复,所以可能是措辞太差,因此难以理解。

使用 python 3.5 及其默认的 minidom,我想知道是否有可能改变这个:

<EditData_Score>
<EditDataType>BEAT_SCORE</EditDataType>
<Beat>
<EditDataType>BEAT_MARK</EditDataType>
</Beat>
</EditData_Score>

进入这个(父元素没有开始标签):

<EditDataType>BEAT_SCORE</EditDataType>
<Beat>
<EditDataType>BEAT_MARK</EditDataType>
</Beat>
</EditData_Score>

and or this(父元素没有结束标签):

<EditData_Score>
<EditDataType>BEAT_SCORE</EditDataType>
<Beat>
<EditDataType>BEAT_MARK</EditDataType>
</Beat>

我想如果我知道行号我就可以那样删除它,但根据我的研究,在 minidom 中没有一种干净的方法可以做到这一点。

谢谢!

当XML数据加载到DOM表示中时,opening/closing标签的概念不存在。 DOM 知道 元素 及其内容。标签(打开和关闭)的存在只与 DOM 的序列化版本有关——即它们是序列化编码的必要部分,但不是文档语义的一部分。

具有多个顶级标签或缺少开始或结束标签的序列化表示不是 XML 文档的有效表示,无法加载到 DOM(或创建以编程方式在 DOM) 实例中。

如果您必须这样做,您将不得不 post- 使用输出过滤器或单独的程序处理输出,或者编写自定义序列化程序。