Как разобрать несколько файлов xml в iPhone с помощью NSxml parser - PullRequest
0 голосов
/ 09 марта 2012

У меня есть около 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 имеют одинаковую структуру и одинаковый элемент.

Ответы [ 3 ]

1 голос
/ 09 марта 2012

На основе объекта 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.

0 голосов
/ 09 марта 2012

@ moorthy используйте pathForResourcesType: inDirectory в методе NSBundle для получения массива путей, затем для каждого отдельного пути в массиве создайте экземпляр для класса анализатора и выполните синтаксический анализ файла. [[NSBundle mainbundle]pathForResourcesType:@"xml" inDirectory:"Your directory Path"]
Это вернет массив ...... Надеюсь, это поможет вам

0 голосов
/ 09 марта 2012

попробуйте это:

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 

}

...