Yahoo!天气在iphone应用程序
问题描述:
即时通讯开发一个iPhone应用程序使用雅虎天气服务(我有一个关键)。 我有2个问题:Yahoo!天气在iphone应用程序
- 我可以用它在我的应用程序用于商业用途(如张贴我在应用商店应用免费或没有)
- 为什么XML和JSON的结果是不同的: http://weather.yahooapis.com/forecastrss?w=29330057&u=c 和 http://weather.yahooapis.com/forecastjson?w=29330057&u=c
有什么事情要做很多(第一个有想要的位置)? 谢谢。
答
我怀疑这是XML命名空间的问题。根据使用的框架和实际完整的XML,您必须通过名称空间访问元素。您可能想切换到另一个基于DOM的框架(不使用NSXMLParser
),例如Google提供的GDataXMLNode。在基于DOM的框架中,您可以以树状结构访问各个节点,而不是单独构建一个节点。
网上有很多这方面的例子,例如Building an RSS reader或How to read and write XML documents with GDataXML。但是,给一个简单的例子如何看起来:
NSError *error = nil;
GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:data options:0 error:&error];
if (doc == nil) { return nil; }
NSMutableDictionary *result = [[NSMutableDictionary alloc] init];
NSArray *lists = [doc nodesForXPath:@"/result/list" error:nil];
if ([lists count] > 0)
{
for (GDataXMLNode *list in lists) {
int listid = [self integerInNode:list forXPath:@"listid"];
NSString *listname = [self stringInNode:list forXPath:@"name"];
[result setValue:[NSNumber numberWithInt:listid] forKey:listname];
}
}
[doc release];
return [result autorelease];
答
- 是,雅虎让你在公平使用政策下使用他们的API,甚至是商业用途。不要成为屁股,尽管给他们足够的道具,例如他们的图标或徽标带有链接到他们的网站。
- 我不认为知道为什么两种输出格式有差异是很重要的。使用什么更好/更容易。我个人更喜欢使用JSON和Apple的
NSJSONSerialization
类。
首先感谢您的重播,和我很抱歉,因为我编辑的职位,并做出反应不与它有关,但我做到这一点,因为在页面中的错误,我explane:我写我的问题(但我没有点击“发布你的问题”),但我找到了一个解决方案,有一个JSON的听众,所以我删除了我写后,不可能发布,我有一个错误消息说:“不在我们的标准”。再次抱歉。我张贴原帖她:我的问题是,nsxmlparser不能解析这样的 –