2014-08-29 2 views
0

xml 형식의 플랫 데이터 파일이 있지만 현재 해당 파일에 대한 실제 Windows 뷰어가 없습니다. Node-WebKit을 사용하여 간단한 응용 프로그램을 만들기로 결정했습니다. 응용 프로그램에서 데이터 파일을 작성할 필요가 없습니다.Javascript/Node.js에서 데이터 파일을 읽는 올바른 방법?

내 문제는 큰 파일을 읽는 적절한 방법을 모른다는 것입니다. 데이터 파일은 전화 SMS 및 MMS의 백업이며, MMS 항목에는 Base64 이미지 문자열이 포함되어 있습니다. 따라서 파일이 상당히 커지고 대량의 이미지 (일반적으로 약 250MB)가 발생합니다. 파일의 원본 데이터를 만들거나 형식을 지정하지 않았으므로 구조를 수정할 수 없습니다.

그렇다면 XML을 JavaScript 개체로 구문 분석하는 방법이 이미 있다고 가정하면 ) a) 응용 프로그램이 처음 실행될 때 전체 파일을 구문 분석하여 개체 배열을 메모리에 저장하고 응용 프로그램 수명 기간 또는 b) 대화 (특정 발신 또는 수신 번호가있는 모든 메시지)를 추출하고 해당 데이터 만 메모리에 저장하거나 으로 저장할 때마다 전체 파일을 읽습니다. c) 내가 아직 알지 못하는 몇 가지 대체, 더 효율적인 솔루션입니다.

+0

프런트 엔드 또는 서버 측에서 이러한 현상이 발생합니까? – vol7ron

+0

프런트 엔드 용 파일을 분할하기 위해 서버 측 스크립트 (예 : perl)를 만들 수 있습니까? – vol7ron

+0

죄송합니다. 전체 응용 프로그램이 노드 - 웹킷을 통해 클라이언트 측에 있기 때문에 서버에서 데이터를 전송할 수 없습니다. 파일은 로컬 파일 시스템에서 사용자. 나는 메모리에 저장된 많은 데이터가 나쁜 preformance로 이어질 지 궁금하거나, 너무 많은 시간 (내가 대화를 추출하고 싶을 때마다)을 통해 읽는 과정이 낭비적일 경우 궁금합니다. –

답변

1

XML 데이터를 SQLite db로 변환하십시오. SQLite는 기본적으로 메모리 기반이 아닙니다. 데이터가 필요할 때 db에 쿼리하면 문제가 해결됨 :)

+0

메모리 기반이 아닙니까? 데이터가 지속적으로 저장되지 않으며 응용 프로그램이 종료 될 때 데이터가 릴리스되어야 함을 의미합니까? –

+0

전체 데이터 세트를 메모리에 저장하지 않는다는 것을 말합니다. 이는 사용자가 피하기를 원했던 것입니다. – rollingBalls

+0

좋습니다. 데이터베이스를 저장하는 가장 좋은 장소는 무엇입니까? –