上記の4つのタイプ(SAXPaser、XPath、DOM、XMLPullParse)の違いと、それぞれをいつ使用する必要があるかを知りたいです。
3 に答える
SAX 解析は、DOM よりも実装するのに最適です。これら 2 つの違いを以下で確認してください。
ドム
ノードはツリー構造メモリの形式です: より多くのメモリを占有し、小さな XML ドキュメントの場合にのみ DOM が優先されます 実行時は遅くなります オブジェクトとして格納されます プログラム的に簡単に実装できます ナビゲーションと使用が容易です。
サックス
イベントのシーケンス 大きなドキュメントに適したメモリを使用しません。上記の点により、実行時の速度が向上します。オブジェクトが作成されます。オブジェクトを作成するためのコードを記述する必要がある SAX では、ドキュメントを順次処理するため、後方ナビゲーションは不可能です
したがって、非常に大きなファイルがある場合は、SAX パーサーを使用する必要があります。これは、イベントを発生させて解放するためです。メモリには何も保存されません。また、SAX パーサーを使用すると、ランダムな方法で要素にアクセスできず、後戻りできなくなります。、しかし Dom では、ファイル/ドキュメント全体がメモリに保持されるため、xml ファイルの任意の部分にアクセスできます。
この記事を参照してください。概要を読むことで、必要なものを取得できます。
また、このリンクをチェックして、さまざまな xml パーサーのパフォーマンスを表示してください
以下のリンクを確認してください...
http://steveliles.github.com/comparing_methods_of_xml_parsing_in_android.html
http://xjaphx.wordpress.com/2011/11/01/android-xml-adventure-compare-xml-parsers/
http://www.ibm.com/developerworks/opensource/library/x-android/index.html
http://www.developer.com/ws/android/development-tools/Android-XML-Parser-Performance-3824221-2.htm
http://www.geekinterview.com/question_details/12797
(上記の記事の通り)
XML ドキュメントの解析には、SAX と DOM の両方が使用されます。どちらにも長所と短所があり、状況に応じてプログラミングで使用できます
サックス:
- ノードごとに解析します
- XML をメモリに格納しない
- ノードを挿入または削除できません
- 上から下へのトラバース
ドム
- 処理前に XML ドキュメント全体をメモリに格納します。
- より多くのメモリを占有します
- ノードを挿入または削除できます
- 任意の方向にトラバースします。
ノードを見つける必要があり、挿入または削除する必要がない場合は、SAX 自体を使用できます。それ以外の場合は、より多くのメモリがあれば DOM を使用できます。
ドム
ノードはツリー構造メモリの形式です: より多くのメモリを占有し、小さな XML ドキュメントの場合にのみ DOM が優先されます.XML ドキュメント全体を処理する前にメモリに保存します 実行時は遅くなります オブジェクトとして保存されます プログラム的に簡単に実装できますナビゲーションと使用の、任意の方向に横断できます。ノードを挿入または削除、変更できます。
SAX : XML にアクセスする場合に使用します (XML を変更しない)。
イベントのシーケンス 大きなドキュメントに適したメモリを使用しません。XML をメモリに保存せずに処理を実行します。オブジェクトが作成されます。オブジェクトを作成するためのコードを記述する必要がある SAX では、ドキュメントを順次処理するため、後方ナビゲーションは不可能であり、上から下へトラバースします ノードを挿入または削除することはできません
XPATH: Xpath は、XML ドキュメントからいくつかの値のみが必要で、それらの場所がわかっている場合に役立ちます (data./root/item/challange/text のパスがわかります)。
XMLPullParser: DOM を使用すると高速で必要なメモリが少なくて済みます
ソース: http://www.time2ask.com/ http://www.time2ask.com/Android/The-difference-among-SAX-ParserXPathDOMXMLPullParser/_2361836