これらの解析手法の比較が見つかりません。最も一般的に使用されるのはどれですか?
よろしく。ムスタファ
NSXMLParser はSAXパーサーです。つまり、XML ドキュメントをステップスルーし、(デリゲート メソッドを介して) さまざまなイベント (xml ノードの開始、属性の検索など) を通知します。このタイプの XML 処理は、巨大なドキュメントを解析する場合や、大きなファイルから少量のデータのみを取得する必要がある場合に最適です。
SAX とは対照的に、DOMモデルでは、XML ツリー全体が (通常は 1 回の呼び出しで) メモリに解析され、提示された API から XML ドキュメントを自由に調べることができます。これは、xml ドキュメント全体にランダムにアクセスできるため、通常ははるかに簡単に操作できます。
したがって、最初に答えるべき質問は、SAX と DOM の質問です。大きな XML ファイル (たとえば 10 MB 以上) を扱っている場合は、SAX を使い続けることをお勧めします。小さな XML ファイルや小さな XML フラグメントを扱う場合は、DOM を使用する方がはるかに簡単です。
実際に DOM を使用することにした場合は、いくつかのオプションがあります。
libxml2 は C で書かれた非常に強力な API です。主に DOM スタイルで使用するためのものですが、経験があれば他のオプションも利用できます。ただし、C で記述されているため、Objective-C (オブジェクトと自動解放) に慣れている人や、.Net の世界からやってきた人には魅力的ではないことがよくあります。したがって、libxml をより親しみやすくするためにネイティブの Objective-C ラッパーが必要です。TouchXML はそのようなラッパーの 1 つです。XML への読み取りアクセスのみが必要な場合に適しています。XML を変更したい場合、または XML フラグメント/ドキュメントを最初から作成したい場合は、KissXMLを使用することをお勧めします。
iOS 用の XML チュートリアル: iPhone プロジェクトに最適な XML パーサーを選択する方法 を参照してください。
iPhone での XML の解析に関しては、多くのオプションがあります。iPhone SDK には、選択できる 2 つの異なるライブラリが付属しており、TBXML、TouchXML、KissXML、TinyXML、および GDataXML など、いくつかの一般的なサードパーティ ライブラリが利用可能です。開発者は自分のプロジェクトに最適な XML パーサーをどのように選択すればよいでしょうか?
私は最近、そこにあるさまざまなオプションを調べており、Apple の XMLPerformance サンプルを拡張して上記の各ライブラリを試し、それらがどのように機能するかを学び、それらのパフォーマンスを比較しました。これまでに学んだことを、iPhone プロジェクトに最適な XML ライブラリを探している他の人たちと共有したいと思いました。
この XML チュートリアルでは、最も一般的な iPhone ライブラリの機能とパフォーマンスを詳細に比較し、それらを選択する方法を説明し、上記の各ライブラリを使用して XML データを読み取る方法を示すサンプル プロジェクトを提供します...