NSXMLParser分开三个元素

时间:2010-12-25 23:18:39

标签: iphone objective-c xcode itunes nsxmlparser

我正在使用三个相同的元素解析xml文件:“im:imageLink”。目前我正在将所有三个链接添加到数组中:

if ([currentElement isEqualToString:@"im:image"]) {   
    string = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
    [imageLinks addObject:string];
} 

如果你能告诉我如何将这三个元素中的每一个分开,并将它们放在三个不同的数组中,我将非常感激。

1 个答案:

答案 0 :(得分:1)

如果我理解上面的注释,你想用height属性分隔项目,这似乎有3个已知值:55,60和170.在这种情况下,你可以根据属性字典拆分它们传入解析器:didStartElement:...调用。假设您调用属性变量“attributeDict”,您的调用将类似于:

int height = [[attributeDict valueForKey:@"height"] intValue];

从那里你可以使用典型的if ... then ... else结构将结果填充到三个不同的数组中。像:

if ([currentElement isEqualToString:@"im:image"]) {   
    string = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
    int height = [[attributeDict valueForKey:@"height"] intValue];
    if (55 == height) {[imageLinks55 addObject:string];}
    else if (60 == height) {[imageLinks60 addObject:string];}
    else if (170 == height) {[imageLinks170 addObject:string];}
    else {NSLog(@"Unrecognized height of an image!");}
}