且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

解析具有相同名称的元素?

更新时间:2023-02-25 15:09:09

这是一个粗略的例子:

-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict {



    if ([elementName isEqualToString:@"hours"]) {
           //Tells us we are in hours group
           _isInHoursGroup = YES; 
           //Get our hour object ready
           _myHourObject = [MyHourObject alloc] init];
           return;
      }

    if ([elementName isEqualToString:@"categories"]) {
           _isInCategoriesGroup = YES; 
           _myCategoryObject = [MyCategoryObject alloc] init];
           return;    

    }


}

然后:

-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {




    if ([elementName isEqualToString:@"hours"]) {
           _isInHoursGroup = NO; 
           return;
    }

    if ([elementName isEqualToString:@"categories"]) {
           _isInCategoriesGroup = NO; 
           return;   
    }

   if (_isInHoursGroup && [didEndElement isEqualToString:@"name"]) {

           //Assumes you have _currentValue variable with the current value in it.
           _myHourObject.myPropert = _currentValue;
           return;
   }

   if (_isInCategoriesGroup && [didEndElement isEqualToString:@"name"]) {

           //Assumes you have _currentValue variable with the current value in it.
           _myCategoryObject.myPropert = _currentValue;
           return;
   }



}