나는 안드로이드 앱을 만들고 내 데이터 소스 인 xml 파일을 가지고 있는데, XPath를 사용하여 쿼리를 작성한 다음 결과를 ListView에로드하기 위해로드합니다. 문제는 xml 파일이 더 커지기 시작할 때 발생합니다 (최대 10MB). 그것은 내가 기억에 문제가있을 수 있다는 것을 의미합니다. xml을로드하고 파일을 검색 할 때 장치의 메모리를 손상시키지 않고 귀중한 시간 처리 데이터를 낭비하지 않고 최상의 방법을 알고 싶습니다.큰 XML 파일로드 및 쿼리 Android
InputStream isRaw = context.getResources().openRawResource(R.raw.xmlbooksource);
_xmlBookSource = new InputSource(isRaw);
그리고 여기에 내가 XPath를 사용하여 쿼리합니다 :
nodeResultSet = (NodeList) xpath.evaluate(xpathExpression, _xmlBookSource, XPathConstants.NODESET);
모든 조언은 환영을 내가 xml 파일을로드 할 때 다음
이다.
동일한 문제가있었습니다 (실제로 약 40 MiB의 XML에서 OutOfMemory 오류가 발생 함). 자신 만의 최적화 된 파서를 작성하는 것 외에는 해결할 방법이 없습니다. – m0skit0
다른 접근 방식을 취해야하고 SAX 파서를 사용하고 있습니다. xml을 읽을 수 있지만, 내가 시도한 파일은 매우 작습니다. 그래서 더 큰 파일을 가지고 다른 테스트를 할 것입니다. – AlexSanchez
SAX를 사용하고 있습니다. 약 40 MiB 이상에서는 작동하지 않습니다. 내가 한 것처럼 시간 낭비하고 싶지 않다면 안드로이드의 XML 파서는 아무도 작동하지 않습니다. – m0skit0