Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 调用多个XML文件_Objective C_Xml_Ipad_Nsxmlparser - Fatal编程技术网

Objective c 调用多个XML文件

Objective c 调用多个XML文件,objective-c,xml,ipad,nsxmlparser,Objective C,Xml,Ipad,Nsxmlparser,在我的应用程序(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 *D

在我的应用程序(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中添加所有信息和标记

编辑:

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

Folder1/file1.xml

Folder2/file2.xml


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

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

NSArray *xmlResourceURLs = [mainBundle
                            URLsForResourcesWithExtension: @"xml"
                            subdirectory: xmlResourcesPath];
foreach (NSURL *xmlURL in xmlResourceURLs)
    [self loadJunkXMLAtURL: xmlURL];

谢谢,但我需要从文件夹中给他们打电话这是要求,这只是一个测试应用程序,他们希望这样做b-(谢谢,但因为我不能更改文件夹格式(作为要求)每个文件夹都位于各自的文件夹中,您有什么建议吗?但由于文件夹名称相同,因此我可以使用pathForResource:folder%d/file%d和of type:@“xml之类的更改吗“??我建议,如果你有特定的要求,那么你就不要使用示例并给出这些特定的要求。至于你可以使用什么,只有你自己知道,因为你是有实际要求的人。如果你不确定,请阅读文档。