2010-11-25 8 views
1

크기가 큰 xml 파일을 구문 분석해야합니다. 그것의 크기는 400-500 MB 조금 넘을 것입니다. 내 응용 프로그램은이 데이터를 기반으로합니다. 그러나 구문 분석에는 많은 시간이 필요합니다. iPhone의 경우 요청할 때마다 10 분 이상 걸립니다. NSXMLParsers in iphone sdk를 사용하여 데이터를 구문 분석합니다. 이제 어떻게해야합니까? XML의거대한 xml 파일을 구문 분석하는 방법

감사 판 카지

답변

5

400-500메가바이트 아이폰에 미친입니다. 대안을 찾으십시오.

예를 들어,이 파일을 응용 프로그램에 포함하는 경우 sqlite 또는 Core Data 데이터베이스로 변환하여 해당 데이터베이스를 응용 프로그램에 포함 시키십시오.

네트워크에서이 데이터를 다운로드하는 경우 동일한 번역을 수행 한 다음 다운로드 한 XML 파일을 버리는 것을 고려하십시오.

1

앞서 언급했듯이 XML은 해당 데이터 양에 적합한 형식이 아닙니다. XML에 이미지 데이터 또는 이와 유사한 특성이 삽입되어있는 경우 해당 정보를 응용 프로그램의 리소스 포크에 넣고 적절한 경로에 XML 참조 파일을 저장할 수 있습니다.

그러나이 문제에 대한 선택의 여지가없고 XML을 사용해야하는 경우 NSXMLParser가 아닌 libxml 라이브러리를 사용하는 것이 좋습니다. libxml 파서는 C로 작성되었으므로 NSXMLParser보다 조금 더 많이 사용하지만 장치에서 사용할 수 있으며 XML의 구조에 따라 Objective-C보다 훨씬 뛰어난 성능을 제공 할 수 있습니다. 물론 두 경우 모두 SAX 구문 분석을 사용해야합니다.

XML을 구문 분석하는 방법에 관계없이 사용자가 데이터를 해당 형식으로 유지하지 않는다는 제안을 되풀이합니다. 일단 정보를 추출하고 나면 작업하기 쉬운 것으로 변환하십시오. 그렇게하면 앱의 초기 사용 비용을 최소한으로 제한 할 수 있습니다.

+0

SAX 방식의 libxml은 거대한 파일을 구문 분석하기에 좋은 방향입니다. – AechoLiu

관련 문제