Cómo extraer el valor "6" entre las etiquetas "badgeCount" utilizando NSRegularExpression. A continuación se muestra la respuesta del servidor:NSRegularExpression para extraer texto entre dos etiquetas XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><badgeCount>6</badgeCount><rank>2</rank><screenName>myName</screenName>
A continuación se muestra el código que probé pero que no obtuvo el éxito. En realidad, va en otra parte y representa un "valor de la expresión regular es nulo":
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");
Si pueden aportar código de ejemplo que sería muy apreciada.
NOTA: No quiero usar NSXMLParser.
¿Por qué no quieres tú? se un analizador xml para analizar xml? – Mat
¿Y qué has intentado hasta ahora? – Mat
No necesito NSXMLParser para extraer solo un par de valores ... Obtuve la expresión regular necesaria "(? <=badgeCount>) (?: [^]) *? (? = BadgeCount)" usando http: // gskinner.com/RegExr/ herramienta en línea pero no puede usar la misma expresión en NSRegular Expression ... – Prazi