1

yahoo Weather サービスを使用して 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 によっては、名前空間で要素にアクセスする必要があります。Google のGDataXMLNodeなど、別の DOM ベースのフレームワーク ( を使用しないNSXMLParser) に切り替えることをお勧めします。DOM ベースのフレームワークでは、独自にノードを構築する代わりに、ツリーのような構造で個々のノードにアクセスできます。

RSS リーダーの作成やGDataXML を使用して XML ドキュメントを読み書きする方法など、ネット上にはこれに関する例がたくさんあります。しかし、これがどのように見えるか簡単な例を挙げると:

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 に答える