2011-12-17 67 views
0

我試着去解析這個XML文件:http://www.ep.samico.dk/data2.xml 不過的NSXMLParser返回一個錯誤(域錯誤5) 我認爲它的文件結構的原因,因爲當我嘗試解析像文件這:http://www.ep.samico.dk/data.xml它的工作沒有問題..任何人都可以告訴我如何做到這一點不同?的NSXMLParser不會讀取XML飼料

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

NSLog(@"Started parsing %@", elementName); 
} 

回答

0

參考鏈接包含CDDATA標籤..

我相信你需要單獨處理CDDATA。你也應該實現這個委託,並處理那裏的數據。

- (void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock 
+0

我想你看到了錯誤的文件。林不知道如果我錯了,但這個文件:http://www.ep.samico.dk/data2.xml不包含任何CDATA ..我錯了嗎?它是這個文件我有解析問題:http://www.ep.samico.dk/data2.xml – ebsp 2011-12-17 19:22:56

0

NSXMLParserErrorDomain錯誤域中的錯誤代碼5是NSXMLParserPrematureDocumentEndError。該錯誤意味着XML數據不完整,通常是因爲解析的數據爲空或nil

我想你應該檢查數據是如何加載的。 URL連接可能存在錯誤。

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.ep.samico.dk/data2.xml"]]; 
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { 

    if (error) 
     NSLog(@"URL error: %@", error); 
    else 
    { 
     NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data]; 
     parser.delegate = self; 
     if (! [parser parse]) 
      NSLog(@"Parser error: %@", parser.parserError); 
    } 
}]; 
+0

它返回沒有錯誤,如果我刪除if語句它返回URL錯誤:(null) – ebsp 2011-12-17 19:43:20

+0

解析器是否成功解析XML數據還是仍然收到解析錯誤? – 2011-12-17 19:51:51

+0

仍然出現域錯誤(5) – ebsp 2011-12-17 19:57:45