2010-11-25 83 views
1

我需要解析一个巨大的XML文件。它的大小将略高于400-500 MB。我的应用程序完全基于这些数据。但解析需要很长时间。 iPhone上的每个请求都需要10分钟以上。我正在使用内置于iphone sdk的NSXMLParsers来解析数据。我现在应该怎么做?如何解析一个巨大的XML文件

感谢 潘卡

回答

5

400-500 MB XML的是iPhone上的疯狂。寻找替代品。

例如,如果您在应用程序中包含此文件,请考虑将其转换为sqlite或Core Data数据库,并将该数据库包含在您的应用程序中。

如果您从网络上下载此数据,请考虑在应用程序中执行相同的翻译,然后丢弃下载的XML文件。

1

如前所述,XML很可能不适用于该数据量的正确格式。如果您的XML具有嵌入式图像数据或其他特性,则可以将其放入应用程序的资源分支中,并将XML参考文件放在适当的路径中。

但是,如果您根本没有任何选择,并且必须使用XML,则可以考虑使用libxml库而不是NSXMLParser。 libxml解析器是用C语言编写的,因此使用它比NSXMLParser工作多一点,但它可以在设备上使用,根据XML的结构,它可以提供比Objective-C更好的性能。当然,在任何情况下都必须使用SAX解析。

无论您如何解析XML,我都会回应您建议您不要以这种格式保存数据。一旦你提取信息一旦尝试将其转换成更容易处理的东西。这样,您至少可以将高性能成本限制在应用程序的初始使用中。

+0

带SAX方式的libxml是解析大文件的好方法。 – AechoLiu 2010-11-26 08:26:14