【问题标题】:How to read URLs (with special characters) with NSXMLParser?如何使用 NSXMLParser 读取 URL(带有特殊字符)?
【发布时间】:2012-05-28 04:40:21
【问题描述】:

我下载了一个包含多个 URL 的 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

有什么想法吗?

谢谢。

【问题讨论】:

  • 除了“不起作用”之外还有什么信息更丰富?

标签: ios url nsxmlparser encode


【解决方案1】:

解决方案是使用该字段

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

【讨论】:

    【解决方案2】:

    已更改答案

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

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

    【讨论】:

    • 抱歉贴错链接,这是正确的eda-bea.es/pub/…
    • 抱歉,我以为您试图将该 URL 嵌入到 XML 文档中。我会给出第二个答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-05
    相关资源
    最近更新 更多