如何使用minidom

时间:2016-05-30 01:34:49

标签: python xml 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>

和/或(父元素没有结束标记):

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

我想如果我知道行号,我就可以删除它,但是从我所研究的内容来看,在minidom中没有一个干净的方法。

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

如果必须这样做,则必须使用输出过滤器或单独的程序对输出进行后处理,或者编写自定义序列化程序。