0

我刚刚实现了我的第一个XmlParser对象 ( MyParserObj),它依赖于 NSXMLParser 对象。此解析器嵌入在tableviewController( ) 中,并从' 方法MyTableViewController开始解析。MyTableViewControllerviewDidLoad

好的。这工作得很好。不过它是一个小的 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/在这里,Jim 描述了他的一个 XML 解析器,它的用户 les 内存然后是其他解析器。

因此,如果您需要解析大型 XML 文件,我建议您查看开源 XML 解析器AQXMLParser,它是博客文章中创建的解析器。

于 2012-05-21T08:39:51.713 回答
2

在 iPhone 设备上,MAC 上没有可用的 NSXMLDocument,它将整个 XML 文档读入内存。有许多可用的 XML Parser 类,您可以在下面的链接中找到它们。

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

对于大数据,我建议使用 json 而不是 xml,请参阅此处的教程

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

于 2012-05-21T08:37:24.483 回答