NSXMLDocument et balises "vides"
Rocou
Membre
Bonjour,
Je tente de lire et de récupérer les éléments d'un fichier xml à l'aide NSXMLDocument.
ça fonctionne très bien sauf dans le cas où le fichier contient une "balise vide". Si c'est le cas, le programme se crashe sur un “EXC_BAD_ACCESSâ€. Je n'arrive pas à savoir comment tester si j'ai affaire à une balise vide et comment y remédier.
Extrait du xml:
On voit ici qu'il n'y a rien entre ces balises: <NomClient></NomClient>
et voici mon bout de code:
Dés que j'essaie d'accéder à [nodes objectAtIndex:index], boum, ça plante.
Je sèche lamentablement alors que je suis sûr que c'est tout bête
Je tente de lire et de récupérer les éléments d'un fichier xml à l'aide NSXMLDocument.
ça fonctionne très bien sauf dans le cas où le fichier contient une "balise vide". Si c'est le cas, le programme se crashe sur un “EXC_BAD_ACCESSâ€. Je n'arrive pas à savoir comment tester si j'ai affaire à une balise vide et comment y remédier.
Extrait du xml:
<WINDEV_TABLE><br /> <PESEE><br /> <N__Ticket>2162</N__Ticket><br /> <Date>03/02/2011</Date><br /> <N__BL>0</N__BL><br /> <CodeClient>CODE DE TOTO</CodeClient><br /> <NomProduit>MON PRODUIT</NomProduit><br /> <Heure_entrée>06:41</Heure_entrée><br /> <Heure_sortie>07:38</Heure_sortie><br /> <Poids_net>240</Poids_net><br /> <Véhicule>AK-47-WC</Véhicule><br /> <Date_entrée>03/02/2011</Date_entrée><br /> <Heure>07:38</Heure><br /> <Poids_entrée>3620</Poids_entrée><br /> <Date_sortie>03/02/2011</Date_sortie><br /> <Poids_sortie>3380</Poids_sortie><br /> <NomClient></NomClient><br /> <CodeProduit>CODE DU PRODUIT</CodeProduit><br /> </PESEE>
On voit ici qu'il n'y a rien entre ces balises: <NomClient></NomClient>
et voici mon bout de code:
NSXMLDocument *xmlDoc; <br /> NSError *err=nil; <br /> NSURL *furl = [NSURL fileURLWithPath:file]; <br /> <br /> if (!furl) { <br /> NSLog(@"Impossible de créer une adresse URL depuis le fichier %@", file); <br /> return; <br /> } <br /> <br /> xmlDoc = [ [NSXMLDocument alloc] initWithContentsOfURL:furl options:(NSXMLNodePreserveWhitespace|NSXMLNodePreserveCDATA) error:&err]; <br /> <br /> if (xmlDoc == nil) { <br /> xmlDoc = [[NSXMLDocument alloc] initWithContentsOfURL:furl <br /> options:NSXMLDocumentTidyXML <br /> error:&err]; <br /> <br /> NSLog(@"erreur");<br /> } <br /> <br /> <br /> NSXMLElement *thisUser; <br /> NSArray *nodes = [xmlDoc nodesForXPath:@"/WINDEV_TABLE/PESEE" error:&err]; <br />
Dés que j'essaie d'accéder à [nodes objectAtIndex:index], boum, ça plante.
Je sèche lamentablement alors que je suis sûr que c'est tout bête
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Je viens de faire un petit test (Xcode 4) et je n'ai pas eu d'erreurs. J'accède bien à l'élément du tableau nodes. Avez vous une erreur lors de la première création du xmldoc ?
Bon, le problème ne venait pas du tout de xmldoc. Merci beaucoup de vous être penché sur mon problème, cela m'a permis de prendre un peu de recul!