我有一个非常大的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>
答案 0 :(得分:1)
您可以遍历所有案例元素。然后创建一个包含所有id值的列表。对列表进行排序。然后迭代列表并始终输出id中包含该值的case元素。
这听起来效率不高,但这是我想到的第一件事。
更新:我想,使用id值作为键并使用这些键对列表进行排序,将dicts添加到列表中会更好。之后,您可以遍历列表并将现在排序的dicts的值写入输出。