如何在iOS上有效地解析大型xml文件以便在SQLite中存储内容?

时间:2010-09-19 15:12:44

标签: iphone xml parsing sqlite

我在我的iPhone应用程序中使用libxml2的DOM解析器来解析一个包含十万行的XML文件。

我将检索到的内容存储到SQLite数据库中。但是,此过程需要几分钟才能完成,太多而无法用户友好。我的感觉是将数据写入数据库时​​丢失的最大部分时间。

我现在正在寻找有关如何提高此流程效率的任何提示。

3 个答案:

答案 0 :(得分:5)

尝试使用Instruments分析代码!检查您自己的代码中花费最多时间的部分!看看你是否可以采取不同的方法(或发布缓慢的代码建议)!如果可能,请使用NSOperation / NSOperationQueue向用户提供进度反馈!

<!/ P>

答案 1 :(得分:3)

您可能还会看一下这个问题:"How do I improve the performance of SQLite?"

答案 2 :(得分:2)

绝对赞同JNozzi。首先分析您的代码,看看最大的性能瓶颈在哪里。目前尚不清楚它是XML DOM树解析,XML DOM树遍历,还是导致最大问题的SQLite插入。

如果问题是DOM树解析(甚至是遍历),那么你应该认真考虑切换到libxml2更有效的XML解析工具之一:xmlTextReader(XML pull api)或SAX(XML push api)。我推荐xmlTextReader:

http://xmlsoft.org/xmlreader.html