问题:
我正在将xml文件(RSS feed)中的一些信息解析为我正在开发的提要阅读器。尝试使用Safari [[UIApplication sharedApplication] openURL:url]
打开新闻网址时无效。
我怀疑xml文件本身准备不充分。实际上,我对此感到震惊,我无法想出办法。
详细信息:
该项目在测试过的所有Feed中都能正常运行,只有一个特殊的Feed无效。更具体地说,在解析时,它会提供这种网址:%0Ahttp://google.com%0A
Here是我正在尝试阅读的XML文件。
我正在使用Ray Wenderlich的RSS阅读器教程作为工作台。
这是我正在使用的代码:
NSURL *url = [NSURL URLWithString:[entry.articleUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
if (![[UIApplication sharedApplication] openURL:url])
NSLog(@"%@%@",@"Failed to open url:",[url description]);
获取此信息:2013-03-22 12:25:57.918 myApp[426:c07] Failed to open url:%0Ahttp://google.it/index.html%0A
请注意:我用这个项目测试的每一个饲料(例如20+)都没有给出任何麻烦。任何帮助都将为我的健康和繁荣生活带来个人的祝福。
答案 0 :(得分:2)
这与XML解析无关,这与正确的URL有关。
[NSURL URLWithString:[entry.articleUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
这是非常非常错误的。
你永远不应该逃避整个网址。您应该只转义查询参数。开头和结尾的%0A
是由换行符编码引起的。
在这种情况下,它们应该已经被转义,所以只需修剪空格:
NSString* urlString = [entry articleUrl];
NSString* trimmedUrlString = [urlString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSURL *url = [NSURL URLWithString:trimmedUrlString];