2011-04-18 3 views
5

SAXParser에서 XMLReader를 사용해야하는 이유가 있습니까?Android : 왜 XMLReader를 사용합니까?

 sp = spf.newSAXParser(); 
     DefaultHandler dh = new LoginContentHandler(); 
     sp.parse(in, dh); 

어떤 특별한 이유 :

 sp = spf.newSAXParser(); 
     XMLReader xr = sp.getXMLReader(); 
     LoginContentHandler uch = new LoginContentHandler(); 
     xr.setContentHandler(uch); 
     xr.parse(new InputSource(in)); 

난 항상 파서이 방법을 사용 : 나는 꽤 많이 사용의이 종류를보고 있어요? 내 길은 짧아서 XMLReader를 사용해야하는 이유는 정말로 모르겠다.

+0

트리에 대한 읽기 저는 믿습니다 기반 : http://www.saxproject.org/event.html –

+0

는 SAX 항상 이벤트 기반으로하지 않습니다? – networkprofile

+1

XMLreader는 파일/스트림을 트리 형태로 메모리에로드해야합니다 : 마지막으로, 이벤트 기반 API를 사용하여 구문 분석 트리를 구성 할 수 있다는 것을 기억하고 이벤트를 사용할 수 있습니다 기반 메모리 트리를 통과하는 API. 즐겁게 보내! –

답변

5

질문에 대답하십시오.

XMLReader를 사용하는 사람들은 파일을 트리 객체로 저장하고 검색을 위해 Log (n) 시간에 트래버스 할 수있는 충분한 메모리가 있다고 가정합니다.

한편 SAX를 사용하면 n 시간에 이벤트 기반 플러그인을 사용하지만 훨씬 적은 메모리 풋 프린트 만 ​​남겨 두어야합니다.

공간과 속도 사이에서 선택합니다.

노트 이벤트 대이 from SAX's own page:

관련 문제