Ba crotte !!
Bon je te montre mon dossier "Projet" ... J'ai bien mon programme "nouveparser "
an@an-laptop:~/Projet$ ls
autre nouveparser.c
nouveparser projet.dtd projet.xml
Et la je te montre 4 tentatives : ECHEC TOTAL !!
an@an-laptop:~/Projet$ ./nouveparser /Projet/projet.xml
Usage : expat <chemin fichier>an@an-laptop:~/Projet$
an@an-laptop:~/Projet$ ./nouveparser /Projet/projet
Usage : expat <chemin fichier>an@an-laptop:~/Projet$
an@andrieux-laptop:~/Projet$ ./nouveparser ~/Projet/projet
Usage : expat <chemin fichier>an@an-laptop:~/Projet$
an@andrieux-laptop:~/Projet$ ./nouveparser ~/Projet/projet.xml
Usage : expat <chemin fichier>an@an-laptop:~/Projet$
Ce que je trouve bizarre, c'est que je travaille deja dans Projet .. Je devais mettre en chemin juste "projet.xml" ...
D'ailleur je mets l'extension de mon fichier a parser ou pas ?
Merci de tes reponses
Je crois que c'est perdu d'avance avec moi ...
Ca ne marche pas avec 1 ni avec 2
erreur de débutant j'avais pas compiler ...
Merci infiniment..
J'aimerais qu'on laisse ce poste ouvert si j'ai des questions sur le code maintenant.
Petit souci :Mon fichier est bien parsé, pas d'erreur.an@an-laptop:~/Projet$ ./nouveparser ./projet.xml
[configuration]={}
[protocole]={nom = ospf, }
[connexion]={type = filaire, }
[routeurs]={nbr = 6, }
[routeur]={id = A, alias = tata, }
[routeur]={id = B, alias = tete, }
[routeur]={id = C, alias = titi, }
[routeur]={id = D, alias = toto, }
[routeur]={id = E, alias = tutu, }
[routeur]={id = F, alias = tyty, }
[liens]={nbl = 5, }
[lien]={src = A, dst = B, cout = 3, }
[lien]={src = A, dst = C, cout = 4, }
[lien]={src = C, dst = D, cout = 5, }
[lien]={src = D, dst = E, cout = 6, }
[lien]={src = E, dst = F, cout = 7, }
Error at line 24:
parsing finished
Mais j'ai une erreur ligne 24
J'ai une erreur au niveau de la variable i.
Voila pour le bout de code. Il aime la l'initialisation
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 void XMLCALL debutElement (void *userdata, const char * el, const char** attr){ int i = 0; fprintf(stdout,"[%s]={",el); while(*(attr + i) != NULL){ fprintf(stdout,"%s = %s, ",attr[i],attr[i+1]); i+=2; } fprintf(stdout,"}\n"); }
Change la boucle while en for. Ca devrait marcher !!!
Je mets :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 int i = 0; fprintf(stdout,"[%s]={",el); while(*(attr + i) != NULL){ fprintf(stdout,"%s = %s, ",attr[i],attr[i+1]); i+=2; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 for (i ; attr +i != NULL ; i+=2) fprintf(stdout,"%s = %s, ",attr[i],attr[i+1]); }
Et n'oublie pas de compiler
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 int i ; for (i = 0 ; *(attr +i); i+=2) { fprintf(stdout,"%s = %s, ",attr[i],attr[i+1]); }
C'est étrange, l'erreur ne vient pas du programme en c mais de mon fichier xml ... Il est pourtant valide...
Non non, mais j'ai rajouté des lignes a mon fichier xml et l'erreur a changé de ligne.. J'en conviens que ca viens de la ...
J'essaye de la valider avec w3c maintenant.
Mais je me rapelle que c'est possible de le faire avec le terminal .. Je devrais revoir mes cours
Tu m'as enormément aider
Néanmoins, je crois que l'erreur vient de ton code.
Ca me signale qu'a la derniere ligne de mon fichier parser, j'ai une erreur... Autrement dis, au dernier element..
Je vais alors voir ton code et la !!
ba c'est vide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 void XMLCALL finElement(void *userdata, const char *el){ }
Je pense que ca vient de la mais quoi mettre ?
Dans ton main, c'est ca qui se lance :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if(XML_Parse(p,buff,taille,done) == XML_STATUS_ERROR){ fprintf(stderr,"Erreur a la ligne %" XML_FMT_INT_MOD "u:\n%s\n",XML_GetCurrentLineNumber(p),XML_ErrorString(XML_GetErrorCode(p))); exit(-1); }
muai ... On va regardé ça un peu plus tard.. Je sature un peu du C, c'est pas marrant de faire des trucs sans comprendre...
Si ça ressemblait autant j'aurais pas autant galéré ..
J'ai toujours pas résolu le souci.. J'y travaille pourtant
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager