Comment extraire la valeur "6" entre les balises "badgeCount" en utilisant NSRegularExpression. Voici la réponse du serveur:NSRegularExpression pour extraire du texte entre deux balises XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><badgeCount>6</badgeCount><rank>2</rank><screenName>myName</screenName>
Voici le code que j'ai essayé mais qui n'a pas réussi. En fait, il va dans une partie autre et imprime « la valeur de regex est nul »:
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 vous pouvez fournir des exemples de code qui serait très apprécié.
REMARQUE: je ne souhaite pas utiliser NSXMLParser.
Pourquoi ne veux-tu pas un analyseur xml pour analyser XML? – Mat
Et qu'avez-vous essayé jusqu'à présent? – Mat
Pas besoin de NSXMLParser pour extraire juste quelques valeurs ... J'ai eu l'expression régulière nécessaire "(? <=badgeCount>) (?: [^]) *? (? = BadgeCount)" en utilisant le http: // gskinner.com/RegExr/ outil en ligne mais incapable d'utiliser la même expression dans NSRegular Expression ... – Prazi