これは 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];