Iphone 目标C:解析非xml网站

Iphone 目标C:解析非xml网站,iphone,objective-c,html-parsing,Iphone,Objective C,Html Parsing,我想开发一个非常简单的“公交时刻表”应用程序,加载一个特定的URL,并可以使用HTML来计算公交号码、路线和预期时间。不幸的是,它是一个非常简单的网站,因此数据分布在TD和DIV字段中,而不是xml中 有人能提供一些从哪里开始的建议吗?我已经看过NSURL、NSURLConnection等,并且能够下载HTML文件的内容,但我不确定下一步该怎么做 非常感谢。完成这项任务有很多方法。最终,您将希望检索一些易于处理的格式,而不是原始html。以下是一种方法: 我建议编写一个服务器端脚本,将html转

我想开发一个非常简单的“公交时刻表”应用程序,加载一个特定的URL,并可以使用HTML来计算公交号码、路线和预期时间。不幸的是,它是一个非常简单的网站,因此数据分布在TD和DIV字段中,而不是xml中

有人能提供一些从哪里开始的建议吗?我已经看过NSURL、NSURLConnection等,并且能够下载HTML文件的内容,但我不确定下一步该怎么做

非常感谢。

完成这项任务有很多方法。最终,您将希望检索一些易于处理的格式,而不是原始html。以下是一种方法:

我建议编写一个服务器端脚本,将html转换为易于理解的格式,如JSON

如果您有php经验,您可以编写一个脚本/web服务来获取所需的元素并将内容放置在关联数组中。将脚本放在服务器上,让应用程序在准备检索信息时调用web服务URL

最后,将信息作为JSON对象返回,并将JSON解析到应用程序中

<?php
    //parse html into the $array variable.
    $array = json_encode($array);
    echo $array;
?>
如果请求成功,则解析生成的JSON:(假设使用SBJSON库)

注意,这是假设您希望将数据添加到字典中,然后适当地显示它。我认为这只是按照您希望的方式格式化数据的片断。解析应用程序中的所有html可能很困难,这就是为什么我主张首先将数据格式化为JSON。如果您决定使用XML,那么也有几个XML解析器

    NSURLRequest *request =[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.yoursite/script.php"]];
-(void)connectionDidFinishLoading:(NSURLConnection *)connection {
[connection release];

NSString *responseString = [[NSString alloc] initWithData: responseData encoding: NSUTF8StringEncoding];
[responseData release];

NSError *error;
SBJSON *json = [[[SBJSON alloc] init]autorelease];
NSDictionary *busData = [json objectWithString:responseString error: &error];
//busData contains bus data that you formatted...