2010-10-05 9 views
1

J'ai trouvé le conseil suivant pour analyser XML dans Objective-C sur un post sur ce site. Cependant, y semble toujours égal nul. Je me demande si quelqu'un peut clarifier ce qui se passe ici.Analyser le code XML Question

NSString * q = [myURL query]; 
NSArray * pairs = [q componentsSeparatedByString:@"&"]; 
NSMutableDictionary * kvPairs = [NSMutableDictionary dictionary]; 
for (NSString * pair in pairs) { 
    NSArray * bits = [pair componentsSeparatedByString:@"="]; 
    NSString * key = [[bits objectAtIndex:0] stringByReplacingPercentEscapesUsingEncoding:NSASCIIStringEncoding]; 
    NSString * value = [[bits objectAtIndex:1] stringByReplacingPercentEscapesUsingEncoding:NSASCIIStringEncoding]; 
    [kvPairs setObject:value forKey:key]; 
} 

NSLog(@"y = %@", [kvPairs objectForKey:@"y"]); 

Répondre

0

Mettre en place une chaîne faite à partir d'un quelque chose d'appel d'URL comme http://www.somewhere.com/form?name=john&x=123&y=456 NSString * q = [La requête myURL];

Créer un tableau de valeurs clés nom paires = john, x = 123, y = 456 NSArray * paires = [q componentsSeparatedByString: @ "&"];

initialiser un dictionnaire pour stocker des paires clé-valeur NSMutableDictionary * kvPairs = [dictionnaire NSMutableDictionary];

Initialiser une (paire NSString * par paires) pour la variable temporaire "paire" et parcourir le tableau {

séparé la clé, côté gauche = de la valeur NSArray * des bits = [paire componentsSeparatedByString: @ "="]; stocker la clé NSString * clé = [[bits objetAtIndex: 0] stringByReplacingPercentEscapesUsingEncoding: NSASCIIStringEncoding]; stocke la valeur NSString * valeur = [[bits objetAtIndex: 1] stringByReplacingPercentEscapesUsingEncoding: NSASCIIStringEncoding]; Remplir le dictionnaire avec des valeurs pour les clés [kvPairs setObject: value forKey: key]; }

Ici vous imprimera la valeur de la "y" clé qui devrait être 456 NSLog (@ "@ y =%", [kvPairs objectForKey: @ "y"]); N'ayant pas le reste de votre code, peut-être que l'URL envoyée n'a pas de nom de clé "y" comme je l'ai décomposé dans mon exemple.

J'espère que cela aide !!