XML 파일을 구문 분석하려고합니다. 그것은 매우 잘 작동 - 오늘까지 ... 여기 XML 구문 분석 - NSXMLParserErrorDomain 오류 5
내가 XML 파싱을 시작하는 방법은 다음과 같습니다- (void)connection:(NSURLConnection *)theConnection
didReceiveData:(NSData *)incrementalData
{
if (data == nil)
data = [[NSMutableData alloc] init];
[data appendData:incrementalData];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.plist",actual]];
NSError *parseError = nil;
NSDictionary *xmlDictionary = [XMLReader dictionaryForXMLString:[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] error:&parseError];
if (parseError != nil) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:[parseError localizedDescription] delegate:nil cancelButtonTitle:@"Zurück" otherButtonTitles:nil];
[alert show];
[alert release];
} //shows an alertview with NSXMLParserErrorDomain error 5
NSLog(@"String: %@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]); //returns null
NSLog(@"Dictionary: %@",xmlDictionary); //returns null
NSMutableDictionary *tempDictForAddDate = [[NSMutableDictionary alloc] initWithDictionary:xmlDictionary];
NSDateFormatter *originalDate = [[NSDateFormatter alloc] init];
[originalDate setDateFormat:@"dd.MM.yyyy"];
NSString *today = [originalDate stringFromDate:[NSDate date]];
[tempDictForAddDate setObject:today forKey:@"updated"];
[tempDictForAddDate writeToFile:filePath atomically:YES];
self.contentList = [[tempDictForAddDate objectForKey:@"xmlObject"] objectForKey:@"event"];
[self sortContent];
}
는 XML : I는 수신 된 데이터를 사용하고 어떻게
NSString *link = [[NSString alloc] init];
link = @"link_to_xml_file";
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:link]
cachePolicy:NSURLRequestReturnCacheDataElseLoad
timeoutInterval:30.0];
connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
을 그리고 여기에 - 파일이 내 브라우저에서 작동합니다. 모든 태그가 닫힙니다. 오류는 없지만 파일의 데이터는 절대 가져 오지 않습니다.
누군가 도와 드릴 수 있기를 바랍니다.
mavrick3.
하지만 오늘은 일했습니다 ... 나는 connectionDidFinishLoading에 구문 분석 코드를 던져 버렸습니다. 여전히 작동하지 않습니다. 물론, 나는 내 코드의 어떤 것도 변경하지 않았고, 명령을 실행했다. 어떻게해야합니까? –
좋아, 그래서 파일의 크기가 처음으로 보낸 데이터의 양보다 작았 기 때문에 나는 그것이 효과가 있다고 생각합니다. 올바른 위치로 이동하는 것이 좋습니다. 나는 다른 생각을 할 것이다 ... – Roger
이유 때문에 증분 데이터라고 부른다. 귀하의 응답은 아마도 오늘까지 작았습니다. 매번'- (void) connection : (NSURLConnection *) theConnection didReceiveData : (NSData *) incrementalData'가 호출 될 때마다 incrementalData를 NSMutableData 객체에 추가해야합니다. 나머지 코드는'- (void) connectionDidFinishLoading : (NSURLConnection *) connection'으로 이동해야합니다. – Joe