NSRegularExpression для извлечения текста между двумя тегами XML

Как извлечь значение "6" между "badgeCount" теги с использованием NSRegularExpression. Ниже приводится ответ сервера:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><badgeCount>6</badgeCount><rank>2</rank><screenName>myName</screenName>

Ниже приведен код, который я пробовал, но безуспешно. На самом деле он входит в часть else и выводит «Value of regex is nil»:

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.

8
задан Blaszard 1 October 2016 в 14:13
поделиться