如何使用NSXMLParser读取URL(带有特殊字符)?

时间:2012-05-21 16:54:30

标签: ios url nsxmlparser encode

我下载了一个包含多个网址的XML文件。它工作正常,但当我在XML中输入这样的URL:

http://eda-bea.es/pub/record_card_1.php?refpage=%252Fpub%252Fsearch_select.php&quicksearch=adra&page=1&rec=3

解析器停止。

根据我的理解,URL包含特殊字符,我已经寻求并作为可能的解决方案提供以下代码,其中信息在解析之前被编码为UTF8:

NSString *dataString = [[NSString alloc] initWithContentsOfURL:URL encoding:NSUTF8StringEncoding error:error];
NSData *data = [dataString dataUsingEncoding:NSUTF8StringEncoding];

NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
[parser setDelegate:self];

[parser parse];

它不起作用。停止在此方法中解析

-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName 
                                 namespaceURI:(NSString *)namespaceURI 
                                qualifiedName:(NSString *)qName 
                                   attributes:(NSDictionary *)attributeDict

有什么想法吗?

感谢。

2 个答案:

答案 0 :(得分:1)

解决方案是使用字段

<![CDATA[http://eda-bea.es/pub/record_card_1.php?refpage=%252Fpub%252Fsearch_select.php&quicksearch=adra&page=1&rec=3]]>

答案 1 :(得分:0)

更改了答案

此链接http://eda-bea.es/pub/record_card_1.php?refpage=%252Fpub%252Fsearch_select.php&quicksearch=adra&page=1&rec=3不是XML文档,而是HTML文档。

解析器将在<link rel="stylesheet" type="text/css" href="images.php/hispep.css">上失败,因为这里没有结束链接标记。