1

我有一个非常大的 XML 文件,下面是一个小例子。有没有捷径可以按孩子排序?我正在使用 Python 和 lxml。在处理数据之前,我想在打开文件时按 id 排序,有人对如何执行此操作有建议吗?我打开了数据,并且我正在以一种不容易提供排序的不同格式写出数据,所以如果可能的话,我想预先对数据进行排序。感谢您的任何指导。

XML 示例:

<case>
    <id>2</id>
<blah>someValue</blah>
<blahblah>someValue</blahblah>
</case>
<case>
<id>3</id>
<blah>someValue</blah>
<blahblah>someValue</blahblah>
</case>
<case>
<id>1</id>
<blah>someValue</blah>
<blahblah>someValue</blahblah>
</case>

我想要这个:

<case>
<id>1</id>
<blah>someValue</blah>
<blahblah>someValue</blahblah>
</case>
<case>
<id>2</id>
<blah>someValue</blah>
<blahblah>someValue</blahblah>
</case>
<case>
<id>3</id>
<blah>someValue</blah>
<blahblah>someValue</blahblah>
</case>
4

1 回答 1

1

您可以遍历所有案例元素。然后创建一个包含所有 id 值的列表。对列表进行排序。然后您遍历列表并始终输出在 id 中具有该值的 case 元素。

这听起来不是很有效,但这是我想到的第一件事。

更新:我想使用 id 值作为键将字典添加到列表中并按这些键对列表进行排序会更好。之后,您可以遍历列表并将现在排序的字典的值写入输出。

于 2013-06-05T14:17:22.013 回答