2012-02-12 2 views
2

40,000 개의 태그 요소가있는 매우 큰 XML 파일이 있습니다. 요소 트리를 사용하여이 파일을 구문 분석 할 때 메모리로 인해 오류가 발생합니다. 전체 xml을 메모리에로드하지 않고 데이터 청크에서 xml 파일을 읽을 수있는 파이썬의 모듈이 있습니까? 그리고 그 모듈을 어떻게 구현할 수 있습니까?청크로 XML 파일을 구문 분석하는 방법

+2

나는 pythonist가 아니지만 XML을 파싱하기위한 SAX (DOM이 아님) aproach를 찾습니다. –

+3

문제가 태그에 임의 액세스를 요구하지 않는 한 SAX는 완벽합니다. 그렇지 않은 경우 메모리에있는 데이터를보다 간결하게 표현할 수있는 방법이있는 경우에도 사용할 수 있습니다. –

+0

lxml이 가장 좋습니다. IBM에서 권장하는 용도도 있습니다. – codersofthedark

답변

2

아마 파이썬에서 XML 작업을위한 최상의 라이브러리는 lxml이며,이 경우에는 iterparse/iterwalk에 관심이 있습니다.

+2

http://stackoverflow.com/questions/7171140/using-python-iterparse-for-large-xml-files 큰 XML 작업시 유의할 가치가 있습니다. 파일. –

2

사람들은 색소폰을 사용하여 일반적으로 해결하는 문제입니다.

거대한 파일이 기본적으로 XML 문서 집합과 전체 XML 봉투에 포함되어 있다면 sax (또는 일반 문자열 구문 분석)를 사용하여 일련의 개별 문서로 나눠서 처리 할 것을 제안합니다. lxml.etree.

관련 문제