将多个XML文件解析为一个或多个Object类?

时间:2009-07-07 14:03:42

标签: iphone objective-c xml iphone-sdk-3.0 nsxmlparser

我的应用程序由TabBarController组成,每个选项卡都带有UITableView。

在启动时,我将XML文件从我的服务器解析为Object类,然后在第一个tableview中显示对象。

我的问题是,当我想解析第二个XML文件时该怎么办?目前,执行此操作时,“XML-file-2”中的信息将覆盖由“XML-file-1”解析的对象。我该怎么做呢?我是否为每个XML文件设置了另一个Object类,还是有另一个用于解决该问题的对象类?

我正在使用NSXMLParser。

4 个答案:

答案 0 :(得分:1)

在该代码段(http://pastie.org/537227)的第21行上,您将产品数组(appDelegate.products)设置为新的可变数组。如果你希望第二次运行附加到appDelegate.products,,你应该看看appDelegate.products是否已经有对象,如果是,请不要为它分配一个新数组,只需使用NSMutableArray将它们添加到它中即可addObject:方法

答案 1 :(得分:1)

我认为您应该考虑使用两个XMLParser实例,每个实例用于您想要阅读的每个XML文件。它允许您同时读取尽可能多的XML个文件而不会相互影响。它也更模块化。

答案 2 :(得分:0)

...不要覆盖已存在的数据......?

如果您在UITableView中显示内容,那么我愿意打赌你在那里有一个NSArray。希望如果你正确设置它,NSArray包含模型对象,每个模型对象对应于UITableView中的一行。但是,我建议使用NSMutableArray。然后,当您解析第二个XML文件并从中构建模型对象时,只需使用NSMutableArray的addObject:方法,然后在UITableView上使用reloadData。

答案 3 :(得分:0)

正如已经提到的notnoop,制作多个NSXMLParser实例将是最佳解决方案 一个名为Simple RSS Reader的开源iPhone RSS阅读器将是您现在想要的一个很好的样本 您可以原样使用简单RSS阅读器的RSSParser类。

HTH