6

リモートサーバーからのXMLファイルからデータを初めて解析するアプリケーションを開発しています。Android:XMLデータを解析するのに最適なパーサー

しかし、どのパーサーが効率的か、または解析に最適かを選択することはできません。データを解析するための最良のパーサーです

  1. SAX
  2. XMLPullParsing
  3. DOM

:私は知っているパースの3つのタイプが、主にあるよう?私はGoogleで検索し、上記のパーサーの肯定的および否定的な両側を見つけました。しかし、私はどれが最も効率的かを判断することができませんでした。

XMLには多数のタグが含まれています。

最初に私のアプリケーションで構文解析を使用しているので、どのパーサーを使用するべきか教えてください。

+0

saxまたはxmlpullparsingを使用します。 – Raghunandan

+1

ファイルサイズが合理的である場合は、domを試してください。コアに収まらない場合は、サックスを使用してください。私たちにあなたのスキーマを見せて、データで何をしているのか教えてください –

+0

重いデータのために良い、そしてdomならsaxを意味しますが、xmlpullparserについて教えてください。サックスとxmlpullの中で最高です。 –

答えて

9

に読み込ませることも、別の答え

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

両側に短所と特典を示しすべてのXMLパーサーでSaxパーサーが最も速いので、間違いなくXMLにアクセスできます。XMLからデータを読み書きする必要がある場合は、DOMに行くことができます。 SAXパーサーを使用すると、XMLからデータを読み取ることしかできなくなります。これらの2つがリストの先頭にあるので、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

関連する問題