0

YouTube データ API によって提供される YouTube フィードを解析しようとしています。このフィードには、次のような特定のユーザーがアップロードしたすべての動画が一覧表示されます: https://gdata.youtube.com/feeds/api/users/google/uploads?v=2

iOS アプリで touchXML を使用しています。<entry>CXMLDocument の nodesForXPath 関数を使用してすべてのノードを収集しようとしました。

NSURL *url = [NSURL URLWithString: newsFeedUrl];
CXMLDocument *feedParser = [[CXMLDocument alloc] initWithContentsOfURL:url options:0 error:nil];
NSArray *resultNodes = [feedParser nodesForXPath:@"//entry" error:nil];
NSLog(@"%@",resultNodes.count); // >>> return (null)

しかし、このクエリは何も返しません。xpath 構文を確認しました。私はそれが間違っているとは思わない。

4

1 に答える 1

0

問題が見つかりました。Xpathと名前空間についてです。XML ドキュメントを xpath で解析するには、サポートする名前空間ごとにデフォルトのマッピングを作成する必要があります。

NSDictionary * maps = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"http://www.w3.org/2005/Atom",@"http://search.yahoo.com/mrss/",@"http://a9.com/-/spec/opensearch/1.1/",@"http://schemas.google.com/g/2005",@"http://gdata.youtube.com/schemas/2007",@"W/\"C08MQXg-cSp7I2A9WhJRFEs.\"",nil] forKeys:[NSArray arrayWithObjects: @"ns",@"media",@"openSearch",@"gd",@"yt",@"etag",nil]];
NSArray *resultNodes = [feedParser nodesForXPath:@"//ns:entry" namespaceMappings:maps error:nil];

TouchXMLの詳細については、こちらをご覧ください。役に立つかもしれないGDataXMLに関する投稿を見つけました。

于 2012-07-17T23:57:33.680 に答える