如何使用Minidom将元素与xml中的其他元素融合?

2024-10-03 23:31:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我将minidom与python3.5结合使用

原始xml数据如下所示: (#Beat和EditData的#得分节点/标记是固定的(在本例中,每个节点/标记3个)。你知道吗

<EditData_Score>
<EditDataType>BEAT_SCORE</EditDataType>
<Spot>20</Spot>
<Time>7</Time>
<Type>X</Type>
<Beat>
<EditDataType>BEAT_MARK</EditDataType>
<Spot>26</Spot>
<BeatLength>4.84472036</BeatLength>
</Beat>
</EditData_Score>
<EditData_Score>
<EditDataType>BEAT_SCORE</EditDataType>
<Spot>36</Spot>
<Time>10</Time>
<Type>X</Type>
<Beat>
<EditDataType>BEAT_MARK</EditDataType>
<Spot>48</Spot>
<BeatLength>4.84472036</BeatLength>
</Beat>
</EditData_Score>

如您所见,Beat元素嵌套在EditData\u Score元素中。 点节点的值总是在增加。我想合并EditData\u Score元素,添加一些小的改动,然后在其中放置和重新分配节拍,以便EditData\u Score封装所有指定的节拍:

<EditData_Score>
<EditDataType>BEAT_SCORE</EditDataType>
<Spot>20</Spot>
<Time>17</Time>
<Type>X</Type>
<Beat>
<EditDataType>BEAT_MARK</EditDataType>
<Spot>26</Spot>
<BeatLength>4.84472036</BeatLength>
</Beat>
<Beat>
<EditDataType>BEAT_MARK</EditDataType>
<Spot>48</Spot>
<BeatLength>4.84472036</BeatLength>
</Beat>
</EditData_Score>

我想我可以解析xml一次,然后:

  • 把我要分组的所有节拍都加到一个列表里
  • 将我要保留的所有EditDataScore添加到列表中

再次解析并:

  • 删除/删除/取消设置?所有旧的节奏和核心
  • 在适当的EditDataScore中吐出节拍组

Tags: 标记元素节点timetypexmlscoremark