2013-06-05 84 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