[Resolu] Recuperer la valeur de l'attributs d'un élément dans un fichier XML

PisixPisix Membre
mars 2013 modifié dans API UIKit #1
J'essai de recuperer les attributs d'un element de mon fichier XML dont la structure est la suivante:





<commands>

<command id="84" crypt="0">

<NbreSecEnCours>4</NbreSecEnCours>

<IdSession NomAppli="MSOutlook_APP02" NameMach="APPS-MLH-P01"

GuidSession="69c1575e-b3b7-4695-98b6-ab9c2cc5de98">7</IdSession>

<IdSession NomAppli="VMClient" NameMach="APPS-MLH-P01"

GuidSession="69c1575e-b3b7-4695-98b6-ab9c2cc5de98">7</IdSession>

<IdSession NomAppli="CRM" NameMach="APPS-MLH-P01"

GuidSession="bf6dfd59-cdae-4197-b9ac-213ebeef83f2">9</IdSession>

<IdSession NomAppli="MSOutlook_APP02" NameMach="APPS-MLH-P01"

GuidSession="bf6dfd59-cdae-4197-b9ac-213ebeef83f2">9</IdSession>

</command>

</commands>

j'aimerais etre a mesure de recuper les valeur de "NomAppli" "NameMach" "GuidSession".......

mais malheureusement je n'y parviens pas voici comment j'aborde le probleme en dessous le contenu de mon fichier pour parser





- (void)parser:(NSXMLParser *)parser

didStartElement:(NSString *)elementName

namespaceURI:(NSString *)namespaceURI

qualifiedName:(NSString *)qName

attributes:(NSDictionary *)attributeDict

{

currentElement = [elementName copy];

//currentElement = [attributeDict copy];

//NSLog(@%@", currentElement);

if ([elementName isEqualToString:@command]) {

item = [[NSMutableDictionary alloc]init];

//currentNode = [[NSMutableString alloc]init];

//Récupération du numéro de la requete

NSLog(@id = %@",[attributeDict objectForKey:@id]);

currentNbreSecEnCours = [[NSMutableString alloc]init];

currentIdSession = [[NSMutableString alloc]init];





}



}



// Found Character

- (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string

{

if ([currentElement isEqualToString:@NbreSecEnCours]) {

[currentNbreSecEnCours appendString:string];



}

if ([currentElement isEqualToString:@IdSession]) {

[currentIdSession appendString:string];



}



}



// End Element

- (void) parser:(NSXMLParser *)parser

didEndElement:(NSString *)elementName

namespaceURI:(NSString *)namespaceURI

qualifiedName:(NSString *)qName

{

if ([elementName isEqualToString:@command]) {

//[item setObject:currentNode forKey:@Username];

[item setObject:currentNbreSecEnCours forKey:@NbreSecEnCours];

[item setObject:currentIdSession forKey:@IdSession];

[commandes addObject:item];

NSLog(@[didEndElement]commandes: %@",commandes);

}

}

//


//-(NSString*)getElementValue:(NSString*)Node{

-(NSMutableArray*)getElementValue{

//NSString *nodeValue;

NSString *nbreSecEnCours;

NSString *idSession;



NSMutableArray *results = [[NSMutableArray alloc]init];

for (NSMutableDictionary *val in commandes) {

nbreSecEnCours= [val objectForKey:@NbreSecEnCours];

nbreSecEnCours = [ nbreSecEnCours stringByReplacingOccurrencesOfString:@\n withString:@";"];

nbreSecEnCours = [ nbreSecEnCours stringByReplacingOccurrencesOfString:@\t withString:@";"];

[results addObject: nbreSecEnCours];

NSLog(@NombreSession:%@",nbreSecEnCours);



idSession = [val objectForKey:@IdSession];

idSession = [idSession stringByReplacingOccurrencesOfString:@\n withString:@";"];

idSession = [idSession stringByReplacingOccurrencesOfString:@\t withString:@";"];

[results addObject:idSession];



}

//return nodeValue;

NSLog(@results= %@",results);

return results;

}

[/code]

J'ai aussi une deuxieme preoccupation , pour le projet sur lequel je suis entrain de travailler je dois parser un bon nombre de fichier car recuperer via une serveur Web distant j'aimerais savoir s'il est possible de faire un parseur gernerique pour ne pas avoir à  creer autant de fichier pour parser que de fichier XML recu .



Merci d'avance .

Je suis Novice en Objective-C celà  fait juste deux semaine que je connais le langage donc si mes questions vous semblent idiotes soyez indulgent
«1

Réponses

  • AliGatorAliGator Membre, Modérateur
    février 2013 modifié #2
    [Moderateur]

    Merci d'éditer ton message pour utiliser la balise "code" autour de ton code source (ou utiliser le bouton "< >" dans la barre d'outil au dessus de la zone de rédaction de ton message), histoire de le rendre un minimum lisible.

    (Sinon personne ne va avoir envie de lire ton message ni donc de te répondre, ça serait dommage...)
  • Bonjour,

    J'essai de recuperer les attributs d'un element de mon fichier XML dont la structure est la suivante:
    <br />
    &lt;commands&gt;<br />
    &lt;command id=&quot;84&quot; crypt=&quot;0&quot;&gt;<br />
    &lt;NbreSecEnCours&gt;4&lt;/NbreSecEnCours&gt;<br />
    &lt;IdSession NomAppli=&quot;MSOutlook_APP02&quot; NameMach=&quot;APPS-MLH-P01&quot;<br />
    GuidSession=&quot;69c1575e-b3b7-4695-98b6-ab9c2cc5de98&quot;&gt;7&lt;/IdSession&gt;<br />
    &lt;IdSession NomAppli=&quot;VMClient&quot; NameMach=&quot;APPS-MLH-P01&quot;<br />
    GuidSession=&quot;69c1575e-b3b7-4695-98b6-ab9c2cc5de98&quot;&gt;7&lt;/IdSession&gt;<br />
    &lt;IdSession NomAppli=&quot;CRM&quot; NameMach=&quot;APPS-MLH-P01&quot;<br />
    GuidSession=&quot;bf6dfd59-cdae-4197-b9ac-213ebeef83f2&quot;&gt;9&lt;/IdSession&gt;<br />
    &lt;IdSession NomAppli=&quot;MSOutlook_APP02&quot; NameMach=&quot;APPS-MLH-P01&quot;<br />
    GuidSession=&quot;bf6dfd59-cdae-4197-b9ac-213ebeef83f2&quot;&gt;9&lt;/IdSession&gt;<br />
    &lt;/command&gt;<br />
    &lt;/commands&gt;<br />
    






    j'aimerais etre a mesure de recuper les valeur des attributs "NomAppli" "NameMach" "GuidSession".......

    mais malheureusement je n'y parviens pas voici comment j'aborde le probleme en dessous le contenu de mon fichier pour parser




    <br />
    - (void)parser:(NSXMLParser *)parser<br />
    didStartElement:(NSString *)elementName<br />
    namespaceURI:(NSString *)namespaceURI<br />
    qualifiedName:(NSString *)qName<br />
    attributes:(NSDictionary *)attributeDict<br />
    {<br />
    currentElement = [elementName copy];<br />
    //currentElement = [attributeDict copy];<br />
    //NSLog(@&quot;%@&quot;, currentElement);<br />
    if ([elementName isEqualToString:@&quot;command&quot;]) {<br />
    item = [[NSMutableDictionary alloc]init];<br />
    //currentNode = [[NSMutableString alloc]init];<br />
    //Récupération du numéro de la requete<br />
    NSLog(@&quot;id = %@&quot;,[attributeDict objectForKey:@&quot;id&quot;]);<br />
    currentNbreSecEnCours = [[NSMutableString alloc]init];<br />
    currentIdSession = [[NSMutableString alloc]init];<br />
    <br />
    }<br />
    }<br />
    // Found Character<br />
    - (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string<br />
    {<br />
    if ([currentElement isEqualToString:@&quot;NbreSecEnCours&quot;]) {<br />
    [currentNbreSecEnCours appendString:string];<br />
    }<br />
    if ([currentElement isEqualToString:@&quot;IdSession&quot;]) {<br />
    [currentIdSession appendString:string];<br />
    }<br />
    }<br />
    // End Element<br />
    - (void) parser:(NSXMLParser *)parser<br />
    didEndElement:(NSString *)elementName<br />
    namespaceURI:(NSString *)namespaceURI<br />
    qualifiedName:(NSString *)qName<br />
    {<br />
    if ([elementName isEqualToString:@&quot;command&quot;]) {<br />
    //[item setObject:currentNode forKey:@&quot;Username&quot;];<br />
    [item setObject:currentNbreSecEnCours forKey:@&quot;NbreSecEnCours&quot;];<br />
    [item setObject:currentIdSession forKey:@&quot;IdSession&quot;];<br />
    [commandes addObject:item];<br />
    NSLog(@&quot;[didEndElement]commandes: %@&quot;,commandes);<br />
    }<br />
    }<br />
    //------------------------------------------------------------------<br />
    //-(NSString*)getElementValue:(NSString*)Node{<br />
    -(NSMutableArray*)getElementValue{<br />
    //NSString *nodeValue;<br />
    NSString *nbreSecEnCours;<br />
    NSString *idSession;<br />
    NSMutableArray *results = [[NSMutableArray alloc]init];<br />
    for (NSMutableDictionary *val in commandes) {<br />
    nbreSecEnCours= [val objectForKey:@&quot;NbreSecEnCours&quot;];<br />
    nbreSecEnCours = [ nbreSecEnCours stringByReplacingOccurrencesOfString:@&quot;\n&quot; withString:@&quot;&quot;];<br />
    nbreSecEnCours = [ nbreSecEnCours stringByReplacingOccurrencesOfString:@&quot;\t&quot; withString:@&quot;&quot;];<br />
    [results addObject: nbreSecEnCours];<br />
    NSLog(@&quot;NombreSession:%@&quot;,nbreSecEnCours);<br />
    idSession = [val objectForKey:@&quot;IdSession&quot;];<br />
    idSession = [idSession stringByReplacingOccurrencesOfString:@&quot;\n&quot; withString:@&quot;&quot;];<br />
    idSession = [idSession stringByReplacingOccurrencesOfString:@&quot;\t&quot; withString:@&quot;&quot;];<br />
    [results addObject:idSession];<br />
    }<br />
    //return nodeValue;<br />
    NSLog(@&quot;results= %@&quot;,results);<br />
    return results;<br />
    }<br />
    






    J'ai aussi une deuxieme preoccupation , pour le projet sur lequel je suis entrain de travailler je dois parser un bon nombre de fichier car recuperer via une serveur Web distant j'aimerais savoir s'il est possible de faire un parseur gernerique pour ne pas avoir à  creer autant de fichier pour parser que de fichier XML recu .



    Merci d'avance .

    Je suis Novice en Objective-C celà  fait juste deux semaine que je connais le langage donc si mes questions vous semblent idiotes soyez indulgent image/apple.gif' class='bbc_emoticon' alt='' />
  • J'utilise TouchXML mais c'est un choix parmi d'autres. En utilisant XPath il est alors assez simple de récupérer les données qui t'intéressent.



    Exemple simplifié et non testé pour lister les attributs NomAppli :
    <br />
    CXMLDocument *parser = [[CXMLDocument alloc] initWithContentsOfURL:apiURL encoding:NSUTF8StringEncoding options:0 error:nil];<br />
    NSArray *resultNodes = [parser nodesForXPath:@&quot;//IdSession&quot; error:nil];<br />
    for (CXMLElement *resultElement in resultNodes)<br />
    	NSLog(@&quot;Nom appli : %@&quot;, [[resultElement attributeForName:@&quot;NomAppli&quot;] stringValue]);<br />
    
  • Merci pour ta reponse j'ai donc telechargé la librairie TouchXML mais lorsque je l'integre juste et que je compile il me genere toute une branche d'erreur dut au commande retain release autorelease or mon projet utilise l'"Automatic reference counting" et quand je le desactive il me genere des erreurs dans tout mon code notamment les lignes où j'utilise @synthetize pour ne citer que celle ci.

    Que faire ??
  • Tu peux utiliser la branche de TouchXML qui supporte l'ARC : https://github.com/T...ree/feature/ARC



    Si tu n'avais pas eu cette option tu aurais également pu spécifier que certains fichiers de ton projet n'utilisaient pas ARC.

    Dans les paramètres de ton projet, dans Build Phases > Compile Sources de ta target, tu pouvais alors ajouter le flag
    -fno-objc-arc
    
    pour ces fichiers afin de désactiver ARC lors de la compilation.
  • Bon pour les erreurs d"AUTOMATIC REFERENCE COUNTING j'ai telechargé la version de TouchXML compatible ARC et plus d'erreur donc je vais tester cette librarie si j'ai des difficulté je reviendrais vers vous image/thumbsup.gif' class='bbc_emoticon' alt='' />
  • AliGatorAliGator Membre, Modérateur
    'Sparkling a écrit:
    Tu peux utiliser la branche de TouchXML qui supporte l'ARC : https://github.com/T...ree/feature/ARC Si tu n'avais pas eu cette option tu aurais également pu spécifier que certains fichiers de ton projet n'utilisaient pas ARC. Dans les paramètres de ton projet, dans Build Phases > Compile Sources de ta target, tu pouvais alors ajouter le flag
    -fno-objc-arc
    
    pour ces fichiers afin de désactiver ARC lors de la compilation.
    Râââ mais non faut arrêter de tout mettre dans un seul gros xcodeproj et de s'amuser ensuite à  modifier les flag de compilation fichier par fichier !

    C'est la galère de faire ça, surtout avec le risque d'oublier un fichier par-ci-par-là ...



    Utilisez les Workspaces pour ça, c'est vraiment fait pour ! Un Workspace qui contient :
    • Un projet pour votre appli
    • Un projet pour chaque lib (ici par exemple créez TouchXML.xcodeproj et mettez les sources de TouchXML dedans), et indiquer dans la phase de "Copy Files" les headers publics qui doivent être visibles par les autres projets, et compilez-le une fois en iOS Device
    • Et après y'a plus qu'à  rajouter libTouchXML.a dans la build phase "Link Binary With Libraries" du projet de l'application et on peut directement faire des #import <TouchXML/TouchXML.h>




    Gros avantages de cette méthode (que j'ai présenté au dernier CocoaHeads #12 de Rennes) :
    • Les build settings de ton application et ceux de TouchXML sont indépendants. Justement notamment, tu peux activer ARC pour le projet de ton application, mais le désactiver pour le projet TouchXML si la lib ne supporte pas encore ARC, ou désactiver certains warnings pour le projet TouchXML car comme c'est pas ton code tu ne les corrigera pas, mais garder plein de warnings d'activés pour le projet de ton application pour être sûr de coder proprement
    • Quand tu fais des recherches dans ton projet, tu peux limiter ces recherches uniquement à  ton propre code (dans le projet de ton appli)
    • Lorsque vous faites de la gestion de version (SVN, GIT...) chacun peut bosser sur les projets séparés sans risquer d'avoir un merge compliqué à  faire comme ça peut être le cas quand on a un gros xcodeproj unique
    • Et plein d'autres avantages (réutilisabilité, séparation des modules et lisibilité...)


    Les workspaces sont fait pour ça, Xcode est pensé pour ça, ça vous évite d'avoir un unique énorme fichier de projet, ça permet de séparer proprement votre code du code venant de l'extérieur... bref, je ne vois aucune raison de s'en priver à  part si on aime se compliquer la vie.
  • hello,



    Surtout a ne pas rater. http://vimeo.com/59334757 ( Presentation @Aligator).
  • AliGatorAliGator Membre, Modérateur
    Ah ben tiens j'avais pas vu que Julien avait eu le temps de la mettre en ligne finalement ma prez image/smile.png' class='bbc_emoticon' alt=':)' /> Cool
  • Merci pour la présentation ! image/smile.png' class='bbc_emoticon' alt=':)' />
  • Merci pour la présentation j'applique celà  tout de suite image/thumbsup.gif' class='bbc_emoticon' alt='' />
  • LeChatNoirLeChatNoir Membre, Modérateur
    Pour en revenir au sujet initial, je ne vois plus trop l'intérêt d'inclure des lib XML depuis iOS5 qui propose un parser qui me semble suffisant.



    Non ?
  • LeChatNoir le hic c'est que je n'arrive pas à  utiliser la librairie XML par défaut pour pouvoir recuperer les attribut de mes tag dans mon fichier XML si tu as un tutoriel ou un exemple complet et concret qui me montre comment faire celà  je suis partant ,



    Merci d'avance
  • une recherche google :



    https://www.google.fr/search?q=nsxmlparser+tutorial



    la doc : (qui pointe sur des exemple Apple)



    https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSXMLParser_Class/Reference/Reference.html



    et la méthode qui va bien :


    <br />
    - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *) namespaceURI qualifiedName:(NSString *)qName attributes: (NSDictionary *)attributeDict {<br />
    if ([elementName isEqualToString:@&quot;monElement&quot;]) {<br />
    	    monAttributInt = [attributeDict objectForKey:@&quot;nomdelattributint&quot;] intValue];<br />
    	    monAttributText = [attributeDict objectForKey:@&quot;nomdelattributtext&quot;];<br />
    }<br />
    }<br />
    
  • Merci pour vos reponse et remarque qui m'on permis d'avancer et je suis de nouveau bloqué et je reviens vers vous car j'ai un probleme je ne sais pas si c'est le fond ou la forme mais ci-dessous voici le fichier que je veux parser
    <br />
    &lt;commands&gt;<br />
       &lt;command id=&quot;84&quot; crypt=&quot;0&quot;&gt;<br />
      &lt;NbreSecEnCours&gt;2&lt;/NbreSecEnCours&gt;<br />
      &lt;IdSession NomAppli=&quot;Notepad&quot; NameMach=&quot;T2037&quot; GuidSession=&quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;&gt;2&lt;/IdSession&gt;<br />
      &lt;IdSession NomAppli=&quot;nslookup&quot; NameMach=&quot;T2037&quot; GuidSession=&quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;&gt;2&lt;/IdSession&gt;<br />
      &lt;/command&gt;<br />
      &lt;/commands&gt;<br />
    








    et voici comment j'essai de recuperer tag et attribut






    <br />
    @implementation XmlParser084<br />
    <br />
    -(id)initParser:(NSData*)data{<br />
        //users = [[NSMutableArray alloc]init];<br />
        commandes = [[NSMutableArray alloc]init];<br />
        NSData *myData   = [[NSData alloc] initWithData:data];<br />
        //NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];<br />
        //NSLog(@&quot;data: %@&quot;,result);<br />
        xmlParser = [[NSXMLParser alloc]initWithData:myData];<br />
        //XMLItems = items;<br />
        [xmlParser setDelegate:self];<br />
        [xmlParser parse];<br />
        return self;<br />
    }<br />
    //--------------------------------------------------------------------<br />
    // Start of element<br />
    - (void)parser:(NSXMLParser *)parser<br />
    didStartElement:(NSString *)elementName<br />
      namespaceURI:(NSString *)namespaceURI<br />
    qualifiedName:(NSString *)qName<br />
        attributes:(NSDictionary *)attributeDict<br />
    {<br />
        currentElement = [elementName copy];<br />
        //currentElement = [attributeDict copy];<br />
        //NSLog(@&quot;%@&quot;, currentElement);<br />
    	<br />
        if ([elementName isEqualToString:@&quot;command&quot;]) {<br />
    	   <br />
    	    //item utilisé pour le stockage du  nombre de session<br />
    	   <br />
    	   item = [[NSMutableDictionary alloc]init];<br />
    	   <br />
    	   <br />
    	    //item2  utilisé pour le stockage des attributs<br />
    	   <br />
    	   item2 = [[NSMutableDictionary alloc]init];<br />
    	   <br />
    	    //currentNode = [[NSMutableString alloc]init];<br />
    	   <br />
    	    //Récupération du numéro de la requete<br />
    	   <br />
    	    NSLog(@&quot;id = %@&quot;,[attributeDict objectForKey:@&quot;id&quot;]);<br />
    	    currentNbreSecEnCours = [[NSMutableString alloc]init];<br />
    	    currentIdSession = [[NSMutableString alloc]init];<br />
    	   <br />
    	  [item setObject:currentNbreSecEnCours forKey:@&quot;NbreSecEnCours&quot;];<br />
    	   <br />
    	  [item setObject:currentIdSession forKey:@&quot;IdSession&quot;];<br />
    	  [commandes addObject:item];<br />
    	    XMLItems = [[NSMutableDictionary alloc]init];<br />
    	   <br />
        }<br />
    	<br />
        if([elementName isEqualToString:@&quot;IdSession&quot;]){<br />
    	   NomAppli = [attributeDict objectForKey:@&quot;NomAppli&quot;];<br />
    	   NameMach = [attributeDict objectForKey:@&quot;NameMach&quot;];<br />
    	   GuidSession = [attributeDict objectForKey:@&quot;GuidSession&quot;];<br />
    	    [item setObject:NomAppli forKey:@&quot;NomAppli&quot;];<br />
    	    [item setObject:NameMach forKey:@&quot;NameMach&quot;];<br />
    	    [item setObject:GuidSession forKey:@&quot;GuidSession&quot;];<br />
    	    [commandes addObject:item];<br />
    	    /*[commandes addObject:NomAppli];<br />
    	    [commandes addObject:NameMach];<br />
    	    [commandes addObject:GuidSession];*/<br />
    	    NSLog(@&quot;[didStartElement]commandes: %@&quot;,commandes);<br />
        }<br />
       <br />
    }<br />
    // Found Character<br />
    - (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string<br />
    {<br />
     <br />
        if ([currentElement isEqualToString:@&quot;NbreSecEnCours&quot;]) {<br />
    	    [currentNbreSecEnCours appendString:string];<br />
    	    NSLog(@&quot;currentNbreSecEncours: %@&quot;, currentNbreSecEnCours);<br />
        }<br />
        if ([currentElement isEqualToString:@&quot;IdSession&quot;]) {<br />
    	   // [currentIdSession appendString:string];<br />
    	    NSLog(@&quot;currentIdSession:  %@&quot;, currentIdSession);<br />
    	  <br />
        }<br />
    }<br />
    // End Element<br />
    ///JE ME DEMANDE QU&#39;ELLE EST LE ROLE DE LA METHODE CI-DESSOUS<br />
    - (void) parser:(NSXMLParser *)parser<br />
      didEndElement:(NSString *)elementName<br />
       namespaceURI:(NSString *)namespaceURI<br />
      qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict<br />
    {<br />
       /* if ([elementName isEqualToString:@&quot;command&quot;]) {<br />
    	    //[item setObject:currentNode forKey:@&quot;Username&quot;];<br />
    	    [item setObject:currentNbreSecEnCours forKey:@&quot;NbreSecEnCours&quot;];<br />
    	    [item setObject:currentIdSession forKey:@&quot;IdSession&quot;];<br />
    	    [commandes addObject:item];<br />
        }<br />
        if([elementName isEqualToString:@&quot;IdSession&quot;]){<br />
    	    [item setObject:currentIdSession forKey:@&quot;IdSession&quot;   ];<br />
    	    NomAppli = [attributeDict objectForKey:@&quot;NomAppli&quot;];<br />
    	    NameMach = [attributeDict objectForKey:@&quot;NameMach&quot;];<br />
    	    GuidSession = [attributeDict objectForKey:@&quot;GuidSession&quot;];<br />
    	   <br />
    	 <br />
    	    NSLog(@&quot;[didEndElement]commandes: %@&quot;,commandes);<br />
        }*/<br />
    }<br />
    //------------------------------------------------------------------<br />
    //-(NSString*)getElementValue:(NSString*)Node{<br />
    <br />
    //CETTE METHODE ME RETOURNE LES à‰Là‰MENT QU&#39;IL FAUT DE MON FICHIER XML DU MOINS C&#39;EST CE QUE JE VEUX QU&#39;ELLE FASSE<br />
    -(NSMutableArray*)getElementValue{<br />
        //NSString *nodeValue;<br />
        NSString *nbreSess;<br />
        NSString *idSession;<br />
        NSString *nomAppli;<br />
        NSString *nameMach;<br />
        NSString *guidSession;<br />
        NSMutableArray *results = [[NSMutableArray alloc]init];<br />
       <br />
       <br />
        NSLog(@&quot;Commande=&gt; %@&quot;,commandes);<br />
       <br />
        for (NSMutableDictionary *val in commandes) {<br />
    	  <br />
    	    nbreSess = [val objectForKey:@&quot;NbreSecEnCours&quot;];<br />
    	    nbreSess = [nbreSess stringByReplacingOccurrencesOfString:@&quot;\n&quot; withString:@&quot;&quot;];<br />
    	    nbreSess = [nbreSess stringByReplacingOccurrencesOfString:@&quot;\t&quot; withString:@&quot;&quot;];<br />
    	    [results addObject:nbreSess];<br />
    	   <br />
    	   <br />
    	   <br />
    	    idSession = [val objectForKey:@&quot;IdSession&quot;];<br />
    	    idSession = [idSession stringByReplacingOccurrencesOfString:@&quot;\n&quot; withString:@&quot;&quot;];<br />
    	    idSession = [idSession stringByReplacingOccurrencesOfString:@&quot;\t&quot; withString:@&quot;&quot;];<br />
    	    [results addObject:idSession];<br />
    	   <br />
    	   <br />
    	   nomAppli = [val objectForKey:@&quot;NomAppli&quot;];<br />
    	   nomAppli = [nomAppli stringByReplacingOccurrencesOfString:@&quot;\n&quot; withString:@&quot;&quot;];<br />
    	   nomAppli = [nomAppli stringByReplacingOccurrencesOfString:@&quot;\t&quot; withString:@&quot;&quot;];<br />
    	    [results addObject:nomAppli];<br />
    	   <br />
    	    nameMach = [val objectForKey:@&quot;NameMach&quot;];<br />
    	    nameMach = [nameMach stringByReplacingOccurrencesOfString:@&quot;\n&quot; withString:@&quot;&quot;];<br />
    	    nameMach = [nameMach stringByReplacingOccurrencesOfString:@&quot;\t&quot; withString:@&quot;&quot;];<br />
    	    [results addObject:nameMach];<br />
    	   <br />
    	   <br />
    	   <br />
    	    guidSession = [val objectForKey:@&quot;GuidSession&quot;];<br />
    	    guidSession = [guidSession stringByReplacingOccurrencesOfString:@&quot;\n&quot; withString:@&quot;&quot;];<br />
    	    guidSession = [guidSession stringByReplacingOccurrencesOfString:@&quot;\t&quot; withString:@&quot;&quot;];<br />
    	    [results addObject:guidSession];<br />
    	   <br />
       <br />
    	  <br />
    	   <br />
    	   <br />
        }<br />
        NSLog(@&quot;Results=&gt; %@&quot;,results);<br />
        //return nodeValue;<br />
        return results;<br />
    }<br />
    






    Mais avec mes dans la console avec les log un peu de partoout dans le code voilà  ce que j'ai coe resultat


    <br />
    2013-02-27 11:54:49.993 XMLTesteur-1.1[1802:11303] id = 84<br />
    2013-02-27 11:54:49.993 XMLTesteur-1.1[1802:11303] currentNbreSecEncours: 1<br />
    2013-02-27 11:54:49.994 XMLTesteur-1.1[1802:11303] [didStartElement]commandes: (<br />
    	    {<br />
    	    GuidSession = &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;;<br />
    	    IdSession = &quot;&quot;;<br />
    	    NameMach = T2037;<br />
    	    NbreSecEnCours = 1;<br />
    	    NomAppli = Notepad;<br />
        },<br />
    	    {<br />
    	    GuidSession = &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;;<br />
    	    IdSession = &quot;&quot;;<br />
    	    NameMach = T2037;<br />
    	    NbreSecEnCours = 1;<br />
    	    NomAppli = Notepad;<br />
        }<br />
    )<br />
    2013-02-27 11:54:49.994 XMLTesteur-1.1[1802:11303] currentIdSession: <br />
    2013-02-27 11:54:49.994 XMLTesteur-1.1[1802:11303] [XMLSender]Response Code: 200<br />
    2013-02-27 11:54:49.994 XMLTesteur-1.1[1802:11303] [XMLSender]Response: &lt;commands&gt;&lt;command id=&quot;84&quot; crypt=&quot;0&quot;&gt;&lt;NbreSecEnCours&gt;1&lt;/NbreSecEnCours&gt;&lt;IdSession NomAppli=&quot;Notepad&quot; NameMach=&quot;T2037&quot; GuidSession=&quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;&gt;2&lt;/IdSession&gt;&lt;/command&gt;&lt;/commands&gt;<br />
    2013-02-27 11:54:49.995 XMLTesteur-1.1[1802:11303] Commande=&gt; (<br />
    	    {<br />
    	    GuidSession = &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;;<br />
    	    IdSession = &quot;&quot;;<br />
    	    NameMach = T2037;<br />
    	    NbreSecEnCours = 1;<br />
    	    NomAppli = Notepad;<br />
        },<br />
    	    {<br />
    	    GuidSession = &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;;<br />
    	    IdSession = &quot;&quot;;<br />
    	    NameMach = T2037;<br />
    	    NbreSecEnCours = 1;<br />
    	    NomAppli = Notepad;<br />
        }<br />
    )<br />
    2013-02-27 11:54:49.995 XMLTesteur-1.1[1802:11303] Results=&gt; (<br />
        1,<br />
        &quot;&quot;,<br />
        Notepad,<br />
        T2037,<br />
        &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;,<br />
        1,<br />
        &quot;&quot;,<br />
        Notepad,<br />
        T2037,<br />
        &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;<br />
    )<br />
    2013-02-27 11:54:49.995 XMLTesteur-1.1[1802:11303] Après---attributs: (<br />
        1,<br />
        &quot;&quot;,<br />
        Notepad,<br />
        T2037,<br />
        &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;,<br />
        1,<br />
        &quot;&quot;,<br />
        Notepad,<br />
        T2037,<br />
        &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;<br />
    )<br />
    2013-02-27 11:54:49.995 XMLTesteur-1.1[1802:11303] parseReponse84: (<br />
        1,<br />
        &quot;&quot;,<br />
        Notepad,<br />
        T2037,<br />
        &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;,<br />
        1,<br />
        &quot;&quot;,<br />
        Notepad,<br />
        T2037,<br />
        &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;<br />
    )<br />
    2013-02-27 11:54:49.995 XMLTesteur-1.1[1802:11303] Commande=&gt; (<br />
    	    {<br />
    	    GuidSession = &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;;<br />
    	    IdSession = &quot;&quot;;<br />
    	    NameMach = T2037;<br />
    	    NbreSecEnCours = 1;<br />
    	    NomAppli = Notepad;<br />
        },<br />
    	    {<br />
    	    GuidSession = &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;;<br />
    	    IdSession = &quot;&quot;;<br />
    	    NameMach = T2037;<br />
    	    NbreSecEnCours = 1;<br />
    	    NomAppli = Notepad;<br />
        }<br />
    )<br />
    2013-02-27 11:54:49.996 XMLTesteur-1.1[1802:11303] Results=&gt; (<br />
        1,<br />
        &quot;&quot;,<br />
        Notepad,<br />
        T2037,<br />
        &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;,<br />
        1,<br />
        &quot;&quot;,<br />
        Notepad,<br />
        T2037,<br />
        &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;<br />
    )<br />
    2013-02-27 11:54:49.996 XMLTesteur-1.1[1802:11303] Après---attributs: (<br />
        1,<br />
        &quot;&quot;,<br />
        Notepad,<br />
        T2037,<br />
        &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;,<br />
        1,<br />
        &quot;&quot;,<br />
        Notepad,<br />
        T2037,<br />
        &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;<br />
    )<br />
    2013-02-27 11:54:49.996 XMLTesteur-1.1[1802:11303] Indice 0=&gt; 1<br />
    2013-02-27 11:54:49.996 XMLTesteur-1.1[1802:11303] Commande=&gt; (<br />
    	    {<br />
    	    GuidSession = &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;;<br />
    	    IdSession = &quot;&quot;;<br />
    	    NameMach = T2037;<br />
    	    NbreSecEnCours = 1;<br />
    	    NomAppli = Notepad;<br />
        },<br />
    	    {<br />
    	    GuidSession = &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;;<br />
    	    IdSession = &quot;&quot;;<br />
    	    NameMach = T2037;<br />
    	    NbreSecEnCours = 1;<br />
    	    NomAppli = Notepad;<br />
        }<br />
    )<br />
    2013-02-27 11:54:49.996 XMLTesteur-1.1[1802:11303] Results=&gt; (<br />
        1,<br />
        &quot;&quot;,<br />
        Notepad,<br />
        T2037,<br />
        &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;,<br />
        1,<br />
        &quot;&quot;,<br />
        Notepad,<br />
        T2037,<br />
        &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;<br />
    )<br />
    2013-02-27 11:54:49.997 XMLTesteur-1.1[1802:11303] Après---attributs: (<br />
        1,<br />
        &quot;&quot;,<br />
        Notepad,<br />
        T2037,<br />
        &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;,<br />
        1,<br />
        &quot;&quot;,<br />
        Notepad,<br />
        T2037,<br />
        &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;<br />
    )<br />
    






    il y'a la tag "NSlookup" qui n'apparait pas je ne recupere qu'un seul idSession et de maniere dupliquer ce que je ne comprends pas



    de facon general je n'arrive pas à  recuperer mes deux instance de <idSession> ainsi que ces attribut dans le fichier XML

    Merci d'avance
  • 'samir2303' a écrit:


    hello,



    Surtout a ne pas rater. [url=&quot; ( Presentation @Aligator).






    lorsque j'essai de suivre les manipulation sur la video dès la 6'50 je bug je ne sais pas si c'est un pb de version moi j'utilisa la version 4.5 de xcode . Quand il es demandé de cliquez glissez et déposé la librairie chez moi il ne me propose pas de creer automatique le workspace

    image/huh.gif' class='bbc_emoticon' alt='???' />??
  • J'ai eu ça aussi... En fait, je ne tirais pas assez la souris suffisamment vers la gauche. Observe bien la ligne bleue qui s'allonge un peu vers la gauche quand tu déplacés ta souris...
  • Bonjour ,

    apres quelque modification j'ai desormais le formatage que je voulais :
    <br />
    2013-02-28 09:46:13.001 XMLTesteur-1.1[884:11303] Commande=&gt; (<br />
    	    {<br />
    	    NbreSecEnCours = 2;<br />
        },<br />
    	    {<br />
    	    GuidSession = &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;;<br />
    	    NameMach = T2037;<br />
    	    NomAppli = Notepad;<br />
        },<br />
    	    {<br />
    	    GuidSession = &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;;<br />
    	    NameMach = T2037;<br />
    	    NomAppli = nslookup;<br />
        }<br />
    )<br />
    




    mais il me genere cette erreur que je ne comprends pas
    <br />
    2013-02-28 09:46:13.002 XMLTesteur-1.1[884:11303] *** Terminating app due to uncaught exception &#39;NSInvalidArgumentException&#39;, reason: &#39;*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil&#39;<br />
    *** First throw call stack:<br />
    (0x1ca0012 0x10dde7e 0x1c53b6a 0x1c53a20 0x83a7 0x53ef 0x584e 0x10f1705 0x28920 0x288b8 0xe9671 0xe9bcf 0xe8d38 0x5833f 0x58552 0x363aa 0x27cf8 0x1bfbdf9 0x1bfbad0 0x1c15bf5 0x1c15962 0x1c46bb6 0x1c45f44 0x1c45e1b 0x1bfa7e3 0x1bfa668 0x2565c 0x1fcd 0x1ef5)<br />
    libc++abi.dylib: terminate called throwing an exception<br />
    (lldb)<br />
    




    Merci d'avance
  • je pense que voici la méthode qui me pose une problème :


    <br />
    -(NSMutableArray*)getElementValue{<br />
        //NSString *nodeValue;<br />
        NSString *nbreSess;<br />
        NSString *idSession;<br />
        NSString *nomAppli;<br />
        NSString *nameMach;<br />
        NSString *guidSession;<br />
        NSMutableArray *results = [[NSMutableArray alloc]init];<br />
       <br />
       <br />
        //JUSQU&#39;ICI CE LOG S&#39;AFFICHE NORMALEMENT LE LOG CI -DESSOUS S&#39;AFFCIHE NORMALMENT<br />
       <br />
        NSLog(@&quot;Commandes=&gt; %@&quot;,commandes);<br />
        //<br />
        for (NSMutableDictionary *val in commandes) {<br />
    	  <br />
    	    nbreSess = [val objectForKey:@&quot;NbreSecEnCours&quot;];<br />
    	    nbreSess = [nbreSess stringByReplacingOccurrencesOfString:@&quot;\n&quot; withString:@&quot;&quot;];<br />
    	    nbreSess = [nbreSess stringByReplacingOccurrencesOfString:@&quot;\t&quot; withString:@&quot;&quot;];<br />
    	    [results addObject:nbreSess];<br />
    	   <br />
    	   <br />
    			<br />
    	   nomAppli = [val objectForKey:@&quot;NomAppli&quot;];<br />
    	   nomAppli = [nomAppli stringByReplacingOccurrencesOfString:@&quot;\n&quot; withString:@&quot;&quot;];<br />
    	   nomAppli = [nomAppli stringByReplacingOccurrencesOfString:@&quot;\t&quot; withString:@&quot;&quot;];<br />
    	   [results addObject:nomAppli];<br />
    	   <br />
    	    nameMach = [val objectForKey:@&quot;NameMach&quot;];<br />
    	    nameMach = [nameMach stringByReplacingOccurrencesOfString:@&quot;\n&quot; withString:@&quot;&quot;];<br />
    	    nameMach = [nameMach stringByReplacingOccurrencesOfString:@&quot;\t&quot; withString:@&quot;&quot;];<br />
    	    [results addObject:nameMach];<br />
    	   <br />
    	   <br />
    	   <br />
    	    guidSession = [val objectForKey:@&quot;GuidSession&quot;];<br />
    	    guidSession = [guidSession stringByReplacingOccurrencesOfString:@&quot;\n&quot; withString:@&quot;&quot;];<br />
    	    guidSession = [guidSession stringByReplacingOccurrencesOfString:@&quot;\t&quot; withString:@&quot;&quot;];<br />
    	    [results addObject:guidSession];<br />
    	   <br />
    	  <br />
    	   <br />
        }<br />
        NSLog(@&quot;Results=&gt; %@&quot;,results);<br />
        //return nodeValue;<br />
      //  return commandes;<br />
        return results;<br />
    }<br />
    <br />
    




    le dictionnaire que j'essai de parcourir dans la boucle
    <br />
    for (NSMutableDictionary *val in commandes)<br />
    
    me renvoit au final "nil" et je ne comprend pas pourquoi



    quelqu'un aurait-il une idée???



    Merci d'avance
  • Tu as logué ce que tu fais dans ta boucle ?
  • Justement j'ai loggué
    <br />
    for (NSMutableDictionary *val in commandes) {<br />
    	  <br />
    	    nbreSess = [val objectForKey:@&quot;NbreSecEnCours&quot;];<br />
    	 <br />
    	    nbreSess = [nbreSess stringByReplacingOccurrencesOfString:@&quot;\n&quot; withString:@&quot;&quot;];<br />
    	    nbreSess = [nbreSess stringByReplacin<br />
    }<br />
    


    mais voilà  ce que j'ai dans la console :
    <br />
    2013-02-28 12:08:04.734 XMLTesteur-1.1[1713:11303] Nbre sess :=&gt; 2<br />
    2013-02-28 12:08:04.735 XMLTesteur-1.1[1713:11303] Nbre sess :=&gt; (null)<br />
    <br />
     <br />
    




    Justement c'est ce que je ne comprend pas au depart j'ai bien 2 puis j'ai un null et c'est la valeur qui est envoyé au tableau "results"
  • Il y a manifestement une des chaà®nes de caractères qui est nulle.
  • Hummm Bon je ne sais ci c'est moi qui fait mal ce que je dois faire Bon voila la structure du dictionnaire "commandes" :
    <br />
    ommandes=&gt; (<br />
    	    {<br />
    	    NbreSecEnCours = 2;<br />
        },<br />
    	    {<br />
    	    GuidSession = &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;;<br />
    	    NameMach = T2037;<br />
    	    NomAppli = Notepad;<br />
        },<br />
    	    {<br />
    	    GuidSession = &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;;<br />
    	    NameMach = T2037;<br />
    	    NomAppli = nslookup;<br />
        }<br />
    )<br />
    




    Et j'aimerais donc récupérer chacun des éléments de ce dictionnaires quelqu'un aurait il une idée pour faire celà ?? car coe vous l'avez vu j'ai essayé d'utiliser une boucle For pour le faire mais manifestement ca ne marche pas vu le resultat que j'obtiens.
  • CeetixCeetix Membre
    février 2013 modifié #25
    C'est normal que ça soit null la deuxième fois. Là  en gros tu as un tableau de dictionnaire. Tu parcours chaque élément de ton tableau. Tu as donc un dictionnaire comme élément. Tu essaies de lire "NbreSecEnCours". La première fois ça marche car cette clef existe bien dans le dictionnaire que tu retires. Mais les deux autres dictionnaires n'ont pas cette clef ! D'ailleurs ton "GuidSession" etc ... doivent être nuls à  la première itération !
  • Oui effectivement "GuiSession" etc ,, sont nul à  nul comment pourrais je faire pour récupérer ces valeurs de mon dictionnaire image/huh.gif' class='bbc_emoticon' alt='???' />
  • PisixPisix Membre
    février 2013 modifié #27
    voici comment j'essai d'afficher les element des mon tableau de dictionnaire


    for(i=1;i&lt;k;i++){<br />
    <br />
    <br />
                idSessionDic =[dico objectAtIndex:i];<br />
                NSString  *guidSession,*nameMach,*nomAppli;<br />
    <br />
    <br />
                guidSession=[idSessionDic objectForKey:@&quot;GuidSession&quot;];<br />
                    NSLog(@&quot;guidSession : %@&quot;,guidSession);<br />
                nameMach=[idSessionDic objectForKey:@&quot;NameMach&quot;];<br />
                    NSLog(@&quot;nameMach : %@&quot;,nameMach);<br />
                nomAppli=[idSessionDic objectForKey:@&quot;NomAppli&quot;];<br />
                    NSLog(@&quot;nomAppli : %@&quot;,nomAppli);<br />
    <br />
                listeAppUser.text=[NSString stringWithFormat:@&quot;No%d; User: %@ ;GuidSession: %@ ; NameMach: %@ ; NomAppli: %@&quot;,i,NomUser,guidSession,nameMach,nomAppli];<br />
    <br />
    <br />
            }<br />
    




    dans ma variable "dico" que j'affiche j'ai ceci:


    {<br />
            NbreSecEnCours = 2;<br />
        },<br />
            {<br />
            GuidSession = &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;;<br />
            NameMach = T2037;<br />
            NomAppli = Notepad;<br />
        },<br />
            {<br />
            GuidSession = &quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;;<br />
            NameMach = T2037;<br />
            NomAppli = nslookup;<br />
        }<br />
    }<br />
    


    Mais comme resultat je n'obtient que:
    No2; User: fl_user ;GuidSession: 12729c94-1bf6-49ac-beca-e3c99609aded ; NameMach: T2037 ; NomAppli: nslookup
    




    au lieu d'avoir deux ligne conformement à  mon dictionnaire le No1 ne s'affiche pas et je ne comprend pas pourquoi image/huh.gif' class='bbc_emoticon' alt='???' />??

  • CeetixCeetix Membre
    février 2013 modifié #28
    Moi être désespéré ... J'ai même pas envie de lire perso. Il est 16h49, tu as eu le temps de relire ton message et de te rendre compte que le pavé de code que tu as posté n'est bien formaté, non ?

    Il existe un bouton qui s'intitule "Modfier". Clique ..



    edit : merci !!
  • CeetixCeetix Membre
    février 2013 modifié #29
    Et si tu faisais genre


    if([idSessionDic objectForKey:@&quot;NbreSecEnCours&quot;]) {<br />
    // Traitement<br />
    }
    




    Oui sinon tu pourrais aussi revoir la structure de ton XML. Si tu as la main dessus sa structure n'est pas figée si ?

  • 'Ceetix' a écrit:


    Et si tu faisais genre


    if([idSessionDic objectForKey:@&quot;NbreSecEnCours&quot;]) {<br />
    // Traitement<br />
    }
    




    Oui sinon tu pourrais aussi revoir la structure de ton XML. Si tu as la main dessus sa structure n'est pas figée si ?






    la structure de mon XML est figé je n'ai pas la main dessus je tape sur un web Service distant et lui me retourne la trame XML que j'exploite voici sa structure
    &lt;commands&gt;<br />
       &lt;command id=&quot;84&quot; crypt=&quot;0&quot;&gt;<br />
      &lt;NbreSecEnCours&gt;2&lt;/NbreSecEnCours&gt;<br />
      &lt;IdSession NomAppli=&quot;Notepad&quot; NameMach=&quot;T2037&quot; GuidSession=&quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;&gt;2&lt;/IdSession&gt;<br />
      &lt;IdSession NomAppli=&quot;nslookup&quot; NameMach=&quot;T2037&quot; GuidSession=&quot;12729c94-1bf6-49ac-beca-e3c99609aded&quot;&gt;2&lt;/IdSession&gt;<br />
      &lt;/command&gt;<br />
      &lt;/commands&gt;<br />
    




    En fait au depart je récupère juste le le dictionnaire se trouvant à  l'indice 0 du tableau afin de récupérer uniquement "NbreSecEnCours" voici ci dessous le code en esperant que les commentaires vous aides à  comprendre comment je procède :
    dico=[theSender parseReponse84];<br />
        int k =[dico count];<br />
        //Vu que mon premier element sera tjrs le nombre de session je le recupere d&#39;abord tout seul et je le traite<br />
        /*traitement du premier dictionnaire */<br />
        NSDictionary *nbreSessDic = [[NSDictionary alloc]init ];<br />
        nbreSessDic= [dico objectAtIndex:0];<br />
        NSEnumerator* e=[nbreSessDic keyEnumerator];<br />
        NSString * key,*nbreSess;<br />
        while (key=[e nextObject]) {<br />
            nbreSess=[nbreSessDic objectForKey:key];<br />
        }<br />
      //Fin traitement indice 0<br />
    <br />
        //Traitement du reste des elements qui sont des dictionnaires contenant les idSession<br />
        if([nbreSess isEqualToString:@&quot;0&quot;]){<br />
            listeAppUser.text=@&quot;Aucune Application en cours pour l&#39;utilisateur&quot;;<br />
            nbreSessActive.text = nbreSess;<br />
        }<br />
        else{<br />
             NSDictionary *idSessionDic =[[NSDictionary alloc] init];<br />
           for(i=1;i&lt;k;i++){<br />
    <br />
    <br />
                idSessionDic =[[theSender parseReponse84]objectAtIndex:i];<br />
                NSString  *guidSession,*nameMach,*nomAppli;<br />
    <br />
    <br />
                guidSession=[idSessionDic objectForKey:@&quot;GuidSession&quot;];<br />
                    NSLog(@&quot;guidSession : %@&quot;,guidSession);<br />
                nameMach=[idSessionDic objectForKey:@&quot;NameMach&quot;];<br />
                    NSLog(@&quot;nameMach : %@&quot;,nameMach);<br />
                nomAppli=[idSessionDic objectForKey:@&quot;NomAppli&quot;];<br />
                    NSLog(@&quot;nomAppli : %@&quot;,nomAppli);<br />
    <br />
                listeAppUser.text=[NSString stringWithFormat:@&quot;No%d; User: %@ ;GuidSession: %@ ; NameMach: %@ ; NomAppli: %@&quot;,i,<br />
    <br />
                    NomUser,guidSession,nameMach,nomAppli];<br />
    <br />
            }<br />
    <br />
    <br />
            nbreSessActive.text=nbreSess;<br />
    <br />
    <br />
        }<br />
    




    mais juste le deuxieme element No2 s'affiche pas le premier N01

    et je ne comprends pas pourquoi image/huh.gif' class='bbc_emoticon' alt='???' />? je ne sais pas si ma facon de parcourir le dictionnaire qui n'est pas bonne.

  • j'arrive toujours pas à  parcourir normalement mon dictionnaire de tel sorte d'avoir les deux elements dans mon text View "listeAppUser"

    j'ai juste
    <br />
    No2; User: fl_user ;GuidSession: a68654f7-c865-45ba-b17a-039f40d539b9 ; NameMach: T2037 ; NomAppli: nslookup<br />
    




    au lieu d'avoir
    <br />
    No1; User: fl_user ;GuidSession: a68654f7-c865-45ba-b17a-039f40d539b9 ; NameMach: T2037 ; NomAppli: notepad<br />
    No2; User: fl_user ;GuidSession: a68654f7-c865-45ba-b17a-039f40d539b9 ; NameMach: T2037 ; NomAppli: nslookup<br />
    




    image/huh.gif' class='bbc_emoticon' alt='???' />???
Connectez-vous ou Inscrivez-vous pour répondre.