0
을 구문 분석하지 않습니다 내가 문자열에 첫 번째 <> 커플을 찾기 위해이 방법을 사용하고 있습니다 (XML 내용) :아이폰 - NSScanner
NSScanner* scanner = [NSScanner scannerWithString:contentToParse];
int startPos = 0;
int endPos = 0;
// Open search
if ([scanner scanString:@"<" intoString:nil]) {
startPos = [scanner scanLocation]-1;
NSLog(@"found '<' at pos %i", startPos);
// close search
if ([scanner scanString:@">" intoString:nil]) {
endPos = [scanner scanLocation]-1;
NSLog(@"found '>' at pos %i", endPos);
NSString* tag = [contentToParse substringWithRange:NSMakeRange(startPos, endPos-startPos)];
NSLog(@"Tag found : %@", tag);
}
}
하지만 "POS 0 '<을'발견"이 기록된다 . 내 XML 콘텐츠에 많은 수의 <이 포함되어 있습니다 ...
왜 그 방법이 작동하지 않습니까?
감사합니다. 하지만 왜'[scanner scanUpToString : @ "<"intoString : nil]; if (true) ..............'작동합니다 (로그가 정상입니다) 그리고 왜 | if ([scanner scanUpToString : @ "<"intoString : nil>) ............ (콘솔에 단일 로그가 아닙니다)? – Oliver
'[scanner scanUpToString : @ "<"intoString : nil]'이상한 결과를 반환합니까? 나는 문자를 변경하지 않았습니다. 알아 두겠습니다. 팁 : 파일 시작 부분에가 있습니다. 그 이유가 되겠습니까 ??? –
Oliver
@Oliver'scanUpToString : intoString :''YES '를 반환합니다 ** ** 스캐너가 문자를 스캔하면 **. 처음에 "<"문자가 있으면 '아니오'를 반환합니다. 이 메서드의 반환 값을 사용하여 문자열을 찾았는지 여부를 확인하지 않으려합니다. 예제와 같이'! [scanner isAtEnd] '를 사용하십시오. – albertamg