SpiritAnghell
Messages postés19Date d'inscriptionsamedi 31 mai 2003StatutMembreDernière intervention 7 mai 2008
-
24 oct. 2005 à 13:42
SpiritAnghell
Messages postés19Date d'inscriptionsamedi 31 mai 2003StatutMembreDernière intervention 7 mai 2008
-
24 oct. 2005 à 16:06
Bonjour;
Le programme suivant est censé extraire les balises d'un fichier xml et les afficher une par une:
#include
#include <string>
#include <fstream>
#include <vector>
#include <cstring>
using namespace std;
int main()
{
char sub[50];
int i=0,cpt=0,cpt1=0,cpt2=0;
string error;
cout << "Quel fichier voulez-vous annalyser? Il doi être dans le répertoire courant." << endl;
cin >> sub;
// le constructeur de ifstream permet d'ouvrir un fichier en lecture
FILE *file = fopen(sub, "r");
if ( file ) // ce test échoue si le fichier n'est pas ouvert
{
// cette boucle s'arrête dès qu'une erreur de lecture survient
parseur(file);
}
system("pause"); // à retirer sous unix
return 0;
}
Le fichier xml est le suivant:
<joueurs>
<joueur>
<nom>Jean-Marc Boutinaud</nom>
<mail>JMBoutinaud@wanadoo.fr</mail>
<licence>1234567A</licence>
<classement>30/4</classement>
</joueur>
<joueur>
<nom>Jeremy Dauchin</nom>
<license>7654321A</licence>
<classement>30/5</classement>
18
</joueur>
<joueur>
<nom>Emmanuel Faure</nom>
<license>2222222D</licence>
<classement>30/5</classement>
<naissance>23.10.1978</naissance>
</joueur>
</joueurs>
1234567A battu_par 7654321A
7654321A battu_par 2222222D
Le problème vient du fait que certaines balises s'affichent plusieurs fois, puisque j'obtiens le résultat suivant:
<joueurs>
<joueur>
<nom>
</nom>
<mail>
</mail>
<licence>
</licence>
<classement>
</classement>
</joueur>
</classement>
<joueur>
</classement>
<nom>
</nom>
<license>
</licence>
<classement>
</classement>