j'ai le texte suivantNSScanner Looping récupération des valeurs multiples
<select name="username"><option value="177"> Bob1
</option><option value="221"> Bob2
</option><option value="227"> Bob3
</option><option value="164"> Bob4
</option><option value="271"> Bob5
</option><option value="137"> Bob6
</option><option value="105"> Bob7
</option><option value="285"> Bob8
</option><option value="281"> Bob9
</option><option value="265"> Bob10
</option></select>
Et je suis en train d'utiliser un NSScanner pour obtenir la valeur de l'option et le nom dans les balises d'options. Jusqu'à présent, j'ai le code suivant
for (int y = 1; y < 16; y++) {
NSScanner *scanner1 = [NSScanner scannerWithString:htmlsource];
[scanner1 scanUpToString:[NSString stringWithFormat:@"<option value=\""] intoString:NULL];
[scanner1 scanString:[NSString stringWithFormat:@"<option value=\""] intoString:NULL];
[scanner1 scanUpToString:@"\"" intoString:&result];
NSLog(@"%i",[scanner1 scanLocation]);
NSLog(result);
[scanner1 setScanLocation:([scanner1 scanLocation] - 18)];
[scanner1 scanUpToString:[NSString stringWithFormat:@"<option value=\"%@\">",result] intoString:NULL];
[scanner1 scanString:[NSString stringWithFormat:@"<option value=\"%@\">",result] intoString:NULL];
[scanner1 scanUpToString:@"</option>" intoString:&result];
//NSLog([NSString stringWithFormat:@"<option value=\"%@\">",result]);
NSLog(@"%i",[scanner1 scanLocation]);
NSLog(result);
}
Cela fonctionne pour la première entrée seulement. Est-ce que je vais mal ou dois-je commencer le balayage là où il s'est arrêté, si oui, comment? Les résultats obtenus jusqu'à présent sont ..
2009-07-31 08:15:53.859 App1[1000:20b] 683
2009-07-31 08:15:53.860 App1[1000:20b] 177
2009-07-31 08:15:53.860 App1[1000:20b] 712
2009-07-31 08:15:53.860 App1[1000:20b] Bob1
2009-07-31 08:15:53.861 App1[1000:20b] 683
2009-07-31 08:15:53.861 App1[1000:20b] 177
2009-07-31 08:15:53.862 App1[1000:20b] 712
2009-07-31 08:15:53.862 App1[1000:20b] Bob1