質問

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

よろしく。 ムスタファ

役に立ちましたか?

解決

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データを読み取る方法を示すサンプルプロジェクトを提供します。上記のライブラリ...

別の優れたブロックベースのXML解析ライブラリ-RaptureXML( github )< href = "https://stackoverflow.com/users/185387/zablanc"> ZaBlanc 、libxml2の上にObjective-C APIを提供します。ぜひ試してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top