URL에서 일부 XML 데이터를 구문 분석하려고합니다. 거의 작동하지만 예상되는 데이터는 기록되지 않습니다.NSXMLParser가 작동하지 않습니다.
#pragma mark - NSXMLParserDelegate
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString*)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
// If you have a more complex object you could init here
// Since I'm just storing a string I won't do anything
if ([elementName isEqualToString:@"name"]) {
// NSLog(@"didStartElement - %@", elementName);
}
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
if (!self->currentStringValue) {
self->currentStringValue = [[NSMutableString alloc] init];
// NSLog(@"didStartElement - %@", string);
}
[self->currentStringValue appendString:string];
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName {
NSString *currentStringValue = [self->currentStringValue
stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
self->currentStringValue = nil;
if ([elementName isEqualToString:@"name"]) {
self->ourExpectedElementValue = currentStringValue;
NSLog(@"%@",currentStringValue);
}
}
는 XML 데이터에서 볼 수 있듯이, 하나 이상의 '이름'요소가 있습니다 : 여기
는 XML 데이터 여기<?xml version="1.0" encoding="utf-8"?> <result>
<row>
<id>1</id>
<menu_id>1</menu_id>
<group_id>1</group_id>
<name>Merchandise</name>
<image>bag of beans.jpg</image>
</row>
<row>
<id>4</id>
<menu_id>1</menu_id>
<group_id>1</group_id>
<name>Misc</name>
<image>tea.jpg</image>
</row>
그리고을의 샘플 것은 내 코드입니다 그리고 마지막 줄에 3 모든 <name>
타 내에서 모든 값을 기록하기위한 것입니다
NSLog(@"%@",currentStringValue);
을 읽 GS, 대신 만이 기록 :이 토론에 알고 보니
2013-07-31 19:02:56.394 Touch2Go[1775:11303] Merchandise
문제점을 재현 할 수 없습니다. 코드는 "Merchandise"와 "Misc"를 모두 기록합니다. 파서 오류를 피하기 위해 필자는 누락 된 ''을 XML 데이터에 추가했습니다. –
이지만 태그가 없습니다. 그게 문제 야? –
AndroidDev
첫 줄에 ''태그가 시작되었습니다. 그리고 네, 그것 없이는 작동하지 않을 것입니다. –