6

원격 서버에서 오는 xml 파일의 데이터를 처음으로 파싱 할 응용 프로그램을 개발 중입니다.Android : XML 데이터를 구문 분석하는 데 가장 적합한 파서

하지만 파서가 효율적이거나 파싱에 가장 적합한 파서를 선택할 수 없습니다.

  1. SAX
  2. XMLPullParsing
  3. 데이터를 구문 분석하는 가장 좋은 파서는 DOM

: 내가 아는 구문 분석의 세 가지 유형, 주로 있기 때문에? Google에서 검색하면서 위의 파서의 양수와 음수를 발견했습니다. 그러나 나는 어느 것이 가장 효율적인지를 결정할 수 없었다.

XML에 많은 태그가있는 무거운 데이터가 있습니다.

나를 안내하고 처음으로 응용 프로그램에서 구문 분석을 사용할 때 어떤 구문 분석기를 사용해야하는지 제안 해주십시오.

+0

은 색소폰 또는 xmlpullparsing을 사용합니다. – Raghunandan

+1

파일 크기가 적당한 경우 dom을 시도하십시오. 코어에 맞지 않으면 색소폰을 사용하십시오. 우리에게 당신의 스키마를 보여주고 어떤 종류의 물건을 당신이 데이터로하고 있는지 말해주십시오. –

+0

무거운 데이터를위한 좋은, 그렇다면 dom 인 경우에는 색소폰을 의미 합니다만, xmlpullparser에 관해 말해주십시오. 색소폰과 xmlpull 중 가장 좋습니다. –

답변

9

로 읽어 양쪽

http://www.firstobject.com/xml-reader-sax-vs-xml-pull-parser.htm

에 단점과 특전을 보여줍니다 모든 XML 파서의 Sax 파서는 가장 빠르지 만 의심 할 여지없이 갈 수 있습니다 .... XML에서 데이터를 읽고 쓰려면 DOM을 사용할 수 있습니다. SAX 파서를 사용하면 XML의 데이터 만 읽을 수 있습니다. 이 두 가지가 목록 맨 위에 있으므로 XMLPullparser를 생각할 필요가 없습니다.

+0

죄송 합니다만 SAX 파서 자체 닫기 태그 에 문제가 있습니다. 해결 방법이 있습니까? – vuhung3990

18

SAX 구문 분석은 DOM보다 구현하기 가장 좋습니다. 다음에이 두 가지의 차이를 참조하십시오

DOM :

  • 노드가 트리 구조의 형태에 있습니다.
  • 메모리 : 더 많은 메모리를 차지하며 DOM은 작은 XML 문서의 경우에만 사용됩니다.
  • 런타임시 느려집니다.
  • 개체로 저장됩니다.
  • 프로그래밍 방식으로 구현하기 쉽습니다.
  • 쉬운 탐색 및 사용.

SAX : 이벤트의

  • 순서.
  • 대용량 문서에는 메모리를 사용하지 않습니다.
  • 위에서 언급 한 점 때문에 런타임이 빠릅니다.
  • 개체가 만들어집니다.
  • 개체를 만들기위한 코드를 작성해야합니다.
  • SAX에서 순차적으로 뒤로 탐색이 가능하지 않습니다. 은 문서를 처리합니다.
+2

+1. 이것은 탁월한 비교입니다. 프로그래머가 노드를 단계별로 실행해야하기 때문에 SAX를 구현하기가 더 어렵다는 것을 강조 할 것입니다. 그러나 더 빠르고 더 적은 메모리를 사용하며 대용량 XML 데이터 세트 또는 스트리밍 XML 데이터에 훨씬 적합합니다. –

+0

친구가 아닙니다. :) –

1

저는 XMLPullParsing이라고 말하고 싶지만, 최근에 좋은 점을 들었습니다. Xerces도 그 중 하나를 살펴볼 수 있습니다. 그러나 결코 Xerces를 사용하지 않았고 XMLPullParser는 절대로 실패하지 않았습니다. 우리는 그것을 사용하여 컬러 블라인드 애플 리케이션을 구축하고 그것은 단지 당신이 사진을 찍은 어떤 색깔을 말해 당신에게 색상 콤보의 수천을 당긴다.

갱신 : 당신이 마음 읽기를 해달라고을 heres 몇 가지 링크가 읽기 : p는 또한 어쩌면 또 다른 대답은 SAX parser vs XMLPull parser