1

我正在使用雅虎天气服务(我有钥匙)开发一个 iphone 应用程序。我有 2 个问题:

  1. 我可以在我的应用程序中将其用于商业用途吗(例如在应用商店中免费或不免费发布我的应用程序)
  2. 为什么 xml 和 json 结果不同: http ://weather.yahooapis.com/forecastrss?w=29330057&u=c 和 http://weather.yahooapis.com/forecastjson?w=29330057&u=c

有什么事情要做很多(第一个有想要的位置)?谢谢你。

4

2 回答 2

1

我怀疑这是 XML 命名空间的问题。根据使用的框架和实际的完整 XML,您必须通过它们的名称空间访问元素。您可能想要切换到另一个基于 DOM 的框架(不使用NSXMLParser),例如Google 的GDataXMLNode。在基于 DOM 的框架中,您可以访问树状结构中的各个节点,而不是自己构建一个。

网上有很多这方面的例子,例如Building an RSS readerHow 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]; 
于 2011-12-08T17:01:34.877 回答
0
  1. 是的,雅虎!让您在合理使用政策下使用他们的 API,甚至是商业用途。不要做傻事,给他们足够的道具,例如他们的图标或带有网站链接的徽标。
  2. 我认为知道为什么两种输出格式存在差异并不重要。使用对您来说更好/更容易的东西。我个人更喜欢使用 JSON 和 Apple 的NSJSONSerialization类。
于 2012-10-04T15:18:24.383 回答