如何在iPhone中使用NSxml解析器解析多个xml文件
如果可能的话,我有一个接近15个和更多的xml文件在一个文件夹内解析所有文件?如果我想分析多个文件,我在下面设置路径。我如何设置该文件夹文件的路径?如何在iPhone中使用NSxml解析器解析多个xml文件
这段代码对于单个文件xml解析器来说工作正常。
NSString *playlistfilePath = [[NSBundle mainBundle] pathForResource:@"CT8OkzhF8qmEYGe2" ofType:@"xml"];
NSData *playlistfileData = [NSData dataWithContentsOfFile:playlistfilePath];
NSString *playlistxmlFile = [[NSString alloc] initWithData:playlistfileData encoding:NSASCIIStringEncoding];
//parsing the XML
PlaylistXmlParser *playlistparser = [[PlaylistXmlParser alloc] init];
[playlistparser parseXMLFile:playlistxmlFile];
所有XML文件都具有相同的结构和相同的元素。请亲引导我。
试试这个:
NSXMLParser *xmlParser = [[[NSXMLParser alloc] initWithData:playlistfileData]autorelease];
PlaylistXmlParser *parser = [[PlaylistXmlParser alloc] initXMLParser:@"xmlname"];
[xmlParser setDelegate:parser];
在PlaylistXmlParser.m文件
- (PlaylistXmlParser *) initXMLParser:(NSString *)name {
[super init];
xmlname =name;
return self;
}
now in every methods in PlaylistXmlParser.m file :
if ([xmlname isEqualToString:@"xmlname"]) {
//store data
}
else if([xmlname isEqualToString:@"xmlname_1"]){
//store data
}
在的NSXMLParser对象的基础上写解析的逻辑: -
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
//check with switch or if else condition which NSXMLParser object is using this delegate.
}
如像上面的NSXMLParser的所有代表有一个参数作为对象的NSXMLParser。
谢谢你的回复,你是否支持我的问题。这不是这个问题的答案。我已经提到我可以解析一个文件,我想解析多个文件。 – 2012-03-09 05:47:45
创建多个对象,然后在使用委托对象即将到来之后检查相应的文件数据,然后编写业务逻辑来解析数据。 – 2012-03-09 05:51:10
@moorthy使用pathForResourcesType:上一个NSBundle方法inDirectory得到数组o f路径,然后为数组中的每个单独路径创建解析器类的实例并解析文件。 [[NSBundle mainbundle]pathForResourcesType:@"xml" inDirectory:"Your directory Path"]
这将返回一个数组......希望它可以帮助你
你想解析一个文件中的两个或多个XML? – Hector 2012-03-09 05:22:12
我想你会需要为每个进程创建线程,这样所有的解析进程将在后台同时运行。 – Mrunal 2012-03-09 05:24:41
@PiyushPatel不,我想分析多个我想设置该文件作为路径。这就是我需要的。 – 2012-03-09 05:31:08