0

NSXMLParser オブジェクトに依存する最初のXmlParserオブジェクト ( ) を実装しました。このパーサーは( )MyParserObj内に埋め込まれており、の メソッドで解析を開始します。tableviewControllerMyTableViewControllerMyTableViewControllerviewDidLoad

わかりました。これは問題なく動作しています。ただし、小さな Xml ファイルです。大きな Xml ファイルを扱うときに別のアプローチを選択する必要があるかどうか疑問に思っていましたか? 大きな xml ドキュメントを解析するとき、メモリは影響を受けますか?

アップデート

私が理解したい本当のポイントは、プロセスの流れです。

ブレークポイントをいくつか配置したところ、次のようになりました。

  • アプリは最初に (MyTableViewController の viewDidLoad メソッド内で) [MyParserObj parseXMLFileAtURL:path] に遭遇し、Xml ドキュメントの解析を開始します。
  • アプリは Xml ドキュメント全体の解析を終了します (parserDidEndDocument..);
  • tableviewController は、その tableView セル (cellForRowAtIndexPath..) への入力を開始します。

多かれ少なかれ時間/メモリを消費するXmlParser(あなたが提案したものの間)を選択することを除けば、上記の手順は同じになりますか?

肯定的な場合、パーサーがその特定の要素で完了したらすぐにセルへの入力を開始することを考えるのは正しいですか?どうすればよいですか?

ありがとう

ルカ

4

3 に答える 3

3

Jim Doveyは、大きなXMLファイルの解析に関するすばらしいブログ投稿を作成しています。

http://blog.alanquatermain.me/2009/04/06/aqxmlparser-equals-equals-big-memory-win/ここで、ジムは、ユーザーがメモリを使用し、次に他のパーサーを使用する1つのXMLパーサーについて説明します。

したがって、大きなXMLファイルを解析する必要がある場合は、ブログ投稿で作成したパーサーであるオープンソースXMLパーサーAQXMLParserを確認することをお勧めします。

于 2012-05-21T08:39:51.713 に答える
2

iPhone デバイスでは、XML ドキュメント全体をメモリに読み込む NSXMLDocument を MAC で使用できません。利用可能な XML パーサー クラスは多数あり、以下のリンクで見つけることができます。

http://www.raywenderlich.com/553/how-to-chose-the-best-xml-parser-for-your-iphone-project

Ray Wenderlich に関するこのチュートリアルは、アプリに最適な xml リーダーを知るために読む必要があるものです。

私自身のアプリケーションでは、SMXMLDocument を使用しています。これについては、http://nfarina.com/post/2843708636/a-lightweight-xml-parser-for-ios で読むことができます

于 2012-05-21T08:47:53.940 に答える
0

ビッグデータの場合、xml ではなく json をお勧めします。こちらのチュートリアルを参照してください

http://www.readwriteweb.com/hack/2010/11/json-vs-xml.php

于 2012-05-21T08:37:24.483 に答える