2013-06-05 3 views
1

아래에 아주 큰 XML 파일이 있습니다. 아이가 분류 할 수있는 짧은 커팅이 있습니까? 파이썬과 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 값을 키로 사용하고 그 키로 목록을 정렬하면 목록에 dicts를 추가하는 것이 좋습니다. 그런 다음 목록을 반복하고 현재 정렬 된 dicts의 값을 출력에 쓸 수 있습니다.

+0

나는 귀하의 조언을 따르고 있습니다. 이드를 키에 넣고 나머지를 값으로 저장 한 다음 키를 정렬합니다. 잘 작동합니다. – user1904898

+0

내가 도와 줄 수있어서 다행 ... – pypat