0

在我的应用程序(iPad 应用程序)中,我有 5 个文件夹,在每个文件夹中我有一个 XML 文件。我的问题是,如何在我的 appDelegate 中调用所有 .xml 文件

我有 file1.xml、file2.xml、file3.xml、file4.xml、file5.xml(这是一个要求)

对于调用或添加 file1 xml 的路径,我有以下代码:

NSString *xml = [[NSBundle mainBundle] pathForResource:@"file1" ofType:@"xml"];
NSData *Data = [NSData dataWithContentsOfFile:xml];
NSXMLParser *Parser = [[NSXMLParser alloc] initWithData:Data];
file1 *parser = [[file1 alloc] initXMLParser];

但是我怎样才能在我的 appDelegate 类中拥有全部 5 个呢?

我是否需要为每个创建特定的解析器类,或者因为所有信息和标签都是相同的,所以我只需要在我的 appDelegate 中添加所有

编辑:

我必须从他们的文件夹中给他们打电话,例如我不能改变结构

文件夹1/file1.xml

文件夹2/file2.xml

Folder3/file3.xml 等

4

2 回答 2

1

是的,您需要为NSXMLParser要解析的每个 XML 文件实例化一个对象。正如 kimsnarf 所说,加载 XML 文件的简单方法是:使用 for 循环并按顺序加载它们。如果它们在捆绑包中(它们似乎是),我会将它们粘贴在“资源”下的特定路径中,例如“资源/SpecialXMLJunk”,然后通过迭代类似的结果来加载它们URLsForResourcesWithExtension:subdirectory:(用于从“Resources/SpecialXMLJunk”中获取 XML 文件)。所以,伪代码,可能是这样的:

NSArray *xmlResourceURLs = [mainBundle
                            URLsForResourcesWithExtension: @"xml"
                            subdirectory: xmlResourcesPath];
foreach (NSURL *xmlURL in xmlResourceURLs)
    [self loadJunkXMLAtURL: xmlURL];
于 2012-10-14T05:30:14.587 回答
0

创建一个 for 循环并一个一个地加载/解析文件。无论如何,您都应该将解析后的数据存储在某个地方(在缓存或数据库中),这样您就不需要在解析后保留文件和解析器。而是从缓存/数据库中检索数据。

于 2012-10-14T04:52:00.830 回答