NSRegularExpression을 사용하여 "badgeCount"태그 사이에 "6"값을 추출하는 방법. 다음은 서버의 응답입니다.두 개의 XML 태그 사이에서 텍스트를 추출하는 NSRegularExpression
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><badgeCount>6</badgeCount><rank>2</rank><screenName>myName</screenName>
다음은 시도했지만 성공하지 못하는 코드입니다. 실제로 다른 부분과 인쇄에 간다 "정규 표현식의 값은 전무하다"
NSString *responseString = [[NSString alloc] initWithBytes:[responseDataForCrntUser bytes] length:responseDataForCrntUser.length encoding:NSUTF8StringEncoding];
NSError *error;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(?<=badgeCount>)(?:[^])*?(?=</badgeCount)" options:0 error:&error];
if (regex != nil) {
NSTextCheckingResult *firstMatch = [regex firstMatchInString:responseString options:0 range:NSMakeRange(0, [responseString length])];
NSLog(@"NOT NIL");
if (firstMatch) {
NSRange accessTokenRange = [firstMatch rangeAtIndex:1];
NSString *value = [urlString substringWithRange:accessTokenRange];
NSLog(@"Value: %@", value);
}
}
else
NSLog(@"Value of regex is nil");
이 많이 주시면 감사하겠습니다 샘플 코드를 제공 할 수 있다면.
참고 : NSXMLParser를 사용하고 싶지 않습니다.
왜 너는하고 싶지 않아? xml을 파싱하려면 XML 파서를 사용 하시겠습니까? – Mat
그리고 지금까지 어떤 시도를 했습니까? – Mat
http : //를 사용하여 필요한 값을 추출하는 데 NSXMLParser가 필요하지 않습니다. "필요한 정규 표현식을 얻었습니다."(? <=badgeCount>) (? : [^]) *? (? = badgeCount) " gskinner.com/RegExr/ 온라인 도구를 사용할 수 있지만 NSRegular 표현식에서 같은 표현식을 사용할 수 없습니다 ... – Prazi