如果可能的话,我在一个文件夹中有近15个以上的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文件都具有相同的结构和相同的元素。
答案 0 :(得分:1)
在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对象。
答案 1 :(得分:0)
试试这个:
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
}
答案 2 :(得分:0)
[[NSBundle mainbundle]pathForResourcesType:@"xml" inDirectory:"Your directory Path"]