32

これらの解析手法の比較が見つかりません。最も一般的に使用されるのはどれですか?

よろしく。ムスタファ

4

3 に答える 3

58

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を使用することをお勧めします。

于 2009-01-02T20:20:24.677 に答える
14

iOS 用の XML チュートリアル: iPhone プロジェクトに最適な XML パーサーを選択する方法 を参照してください。

iPhone での XML の解析に関しては、多くのオプションがあります。iPhone SDK には、選択できる 2 つの異なるライブラリが付属しており、TBXML、TouchXML、KissXML、TinyXML、および GDataXML など、いくつかの一般的なサードパーティ ライブラリが利用可能です。開発者は自分のプロジェクトに最適な XML パーサーをどのように選択すればよいでしょうか?

私は最近、そこにあるさまざまなオプションを調べており、Apple の XMLPerformance サンプルを拡張して上記の各ライブラリを試し、それらがどのように機能するかを学び、それらのパフォーマンスを比較しました。これまでに学んだことを、iPhone プロジェクトに最適な XML ライブラリを探している他の人たちと共有したいと思いました。

この XML チュートリアルでは、最も一般的な iPhone ライブラリの機能とパフォーマンスを詳細に比較し、それらを選択する方法を説明し、上記の各ライブラリを使用して XML データを読み取る方法を示すサンプル プロジェクトを提供します...

于 2010-07-08T12:34:50.980 に答える
2

別の優れたブロックベースのXML解析ライブラリがあります-ZaBlancによるRaptureXML(github 、 libxml2の上にObjective-C APIを提供します、私は間違いなくそれを試すことをお勧めします。

于 2013-02-24T14:30:41.063 に答える