2013-06-05 44 views
1

我有一个非常大的XML文件,下面是一个小例子。是否有一个快捷方式来由孩子分类?我正在使用Python和lxml。当我在处理数据之前打开文件时,我想按id进行排序,有没有人有关于如何执行此操作的建议?我已经打开了数据,而且我正在以不易于提供排序的不同格式写出数据,因此如果可能,我想先对数据进行排序。感谢您的任何指导。Python lxml - 按子项排序

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> 

回答

1

你可以遍历所有情况下的元素。然后用所有的id值创建一个列表。对列表进行排序。然后遍历列表并始终输出id中具有该值的case元素。

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

更新:我想它会更好地将字典添加到列表使用id值作为关键和按这些键排序列表。之后,您可以迭代列表并将现在排序的字典的值写入输出。

+0

我遵循你的建议。将ID放在键中,并将其余的值存储为值,然后对键进行排序。效果很好。 – user1904898

+0

很高兴我可以帮助... – pypat