ホームページ >バックエンド開発 >XML/RSS チュートリアル >XMLを解析する最も効率的な方法
XML はさまざまな開発で広く使用されており、Android も例外ではありません。データを運ぶ重要な役割として、XML の読み書き方法は Android 開発における重要なスキルとなっています。今日は、Android プラットフォームでの一般的な XML 解析および作成方法をいくつか紹介します。
Android では、一般的な XML パーサーは、SAX パーサー、DOM パーサー、PULL パーサーです。以下に詳しく説明します。
SAX パーサー:
SAX (単純な API XML) パーサーは、イベントベースのパーサーであり、主にイベント ソースとイベント プロセッサーを中心に動作するイベント処理モードです。イベントソースがイベントを生成すると、イベントプロセッサの対応する処理メソッドを呼び出すことでイベントを処理できます。イベント ソースがイベント ハンドラーの特定のメソッドを呼び出すときは、イベント ハンドラーが提供されたイベント情報に基づいて独自の動作を決定できるように、対応するイベントのステータス情報もイベント ハンドラーに渡す必要があります。
SAX パーサーの利点は、解析速度が速く、メモリ使用量が少ないことです。 Androidモバイルデバイスでの使用に最適です。
DOM パーサー:
DOM は、ツリー構造に基づくノードまたは情報フラグメントのコレクションであり、開発者が DOM を使用できるようにします。 API は XML ツリーを走査し、必要なデータを取得します。この構造を分析するには、通常、ノード情報を取得して更新する前に、ドキュメント全体をロードし、ツリー構造を構築する必要があります。
DOMはメモリ上にツリー構造で格納されるため、検索や更新の効率が高くなります。ただし、特に大きなドキュメントの場合、ドキュメント全体を解析してロードするとリソースが大量に消費されます。
PULL パーサー:
PULL パーサーは SAX と同様に動作し、どちらもイベントベースです。違いは、プロセッサがイベントをトリガーしてコードを実行する SAX とは異なり、PULL 解析プロセス中に生成されたイベントを自分で取得し、対応する操作を実行する必要があることです。 PULL パーサーは小型で軽量で、解析速度が速く、シンプルで使いやすいため、Android モバイル デバイスでの使用に非常に適しています。PULL パーサーは、さまざまな XML を解析するときに Android システムの内部でも使用されます。
Android では、もちろん最初の選択肢はプル パーサーです。 PULL パーサーは小型で軽量で、解析速度が速く、シンプルで使いやすいため、Android システムでもさまざまな XML を解析するときに PULL パーサーを使用することが開発者に推奨されています。プル解析テクノロジー。プル解析技術はサードパーティが開発したオープンソース技術であり、JavaSE開発にも応用できます。
PULL の動作:
XML pull は開始要素と終了要素を提供します。要素が開始されると、パーサーを呼び出すことができます。 nextText は、XML ドキュメントからすべての文字データを抽出します。ドキュメントが最後まで解析されると、EndDocument イベントが自動的に生成されます。
一般的に使用される XML プル インターフェイスとクラス:
XmlPullParser: このパーサーは、org.xmlpull.v1 で定義された解析関数を備えたインターフェイスです。
XmlSerializer: XML 情報セットのシーケンスを定義するインターフェイスです。
XmlPullParserFactory: このクラスは、XMPULL V1 API で XML を作成するために使用されます プルパーサー。
XmlPullParserException: 単一の XML プル パーサー関連エラーをスローします。
PULL パーサーは SAX と同様に動作し、どちらもイベントベースです。
違いは、PULL 解析プロセス中に数値が返されることと、プロセッサがイベントをトリガーしてコードを実行する SAX とは異なり、生成されたイベントを自分で取得して対応する操作を実行する必要があることです。
xml ステートメントを読み取り、 START_DOCUMENT を返し、END_DOCUMENT を返します。 ; 開始タグは START_TAG を返します。
終了タグは END_TAG を返します。
最後に、これら 3 つの解析テクノロジを比較してまとめます。
Android モバイル デバイスの場合、デバイスのリソースが比較的貴重でメモリが限られているため、XML を解析するのに適切なテクノロジを選択する必要があります。アクセス速度。
DOM は XML ファイルを処理する際、XML ファイルをツリー構造に解析し、処理のためにメモリに置きます。 XML ファイルが小さい場合は、シンプルで直感的な DOM を選択できます。
SAX は XML ファイルを解析するモードとしてイベントを使用し、XML ファイルを一連のイベントに変換し、さまざまなイベント プロセッサーがそれらの処理方法を決定します。 XML ファイルが大きい場合は、SAX テクノロジーを選択する方が合理的です。コード サイズは若干大きくなりますが、すべての XML ファイルをメモリにロードする必要はありません。これは Android メモリが限られている場合により効率的であり、Android は SAX を使用する従来の方法と便利な SAX ラッパーを提供します。 XML クラスの使用は、SAX を使用するよりも簡単です。
XML プル解析は、SAX 解析のように要素の最後までリッスンするのではなく、ほとんどの処理を先頭で実行します。これは、XML ファイルを早期に読み取るのに役立ち、解析時間を大幅に短縮できます。この最適化は、接続速度が遅いモバイル デバイスにとって特に重要です。 XML ドキュメントが大きくてもドキュメントの一部だけが必要な場合は、XML プル パーサーはより効率的なアプローチです。
上記は、最も効率的な XML 解析方法の内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。