ios - 如何使用 NSXMLParser 解析来自网站的数据

标签 ios ios4 nsxmlparser

我想根据 xml 格式的标题和链接从网站获取更新。

我试过下面的代码,但它不起作用。在控制台中显示消息:

2011-11-03 14:45:05.987 tabbar[673:e903] * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFString isEqualtostring:]: unrecognized selector sent to instance 0x5746830'

如果我再次运行,表格 View 正在加载,但表格单元格中没有数据。

它在 if ([elementName isEqualtostring:@"item"]) 行显示此消息:

program received signal SIGABRT

-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
    classelement = elementName;
    if ([elementName isEqualtostring:@"item"])
    {
        itemselected = YES;
        multitle = [[NSMutableString alloc]init];
        mullink = [[NSMutableString alloc]init];
    }
}

-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedname:(NSString *)qName
{
    if ([elementName isEqualToString:@"item"])
    {
        itemselected = NO;
        [titlearray addObject:multitle];
        [linkarray addObject:mullink];
        [multitle release];
        [mullink release];

        [self.tbl reloadData];
    }
}

-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
    if (itemselected)
    {
        if ([classelement isEqualToString:@"title"]) 
        {
            NSLog(@"%@",string);
            [multitle appendString:multitle];
        }
        else if([classelement isEqualToString:@"link"])
        {
            [multitle appendString:string];
        }
    }
}

最佳答案

如果您直接从网站阅读,您很可能会收到“无效”字符。一旦解析器看到这些无效字符,它就会崩溃。我建议考虑使用“HPPLE Parser”。它工作得更好,如果输入无效字符也不会崩溃。

此处提供惠普信息:http://blog.objectgraph.com/index.php/2010/02/24/parsing-html-iphone-development/

关于ios - 如何使用 NSXMLParser 解析来自网站的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7992583/

相关文章:

iphone - 防止计算器语法错误崩溃? Xcode

javascript - 从 Windows Azure 移动服务中的读取请求获取 ID

iphone - iOS向前兼容或向后兼容

objective-c - 如何在宏中使用 block

objective-c - 使用 NSXMLParser 和核心数据更新实体的功能

iphone - iOS - 有清理 HTML 代码的好方法吗?

objective-c - GCD 回到主线程

ios - react native 选项卡 View

iphone - 如何通过Get方法从Web服务中获取数据并想保存到iPhone SDK中的Mutable Dictionary中

ios - AFNetworking 未得到正确响应