Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

PETITE LIB XML


Information sur la source

Catégorie :Fichiers / Disque Niveau : Débutant Date de création : 04/12/2004 Date de mise à jour : 04/12/2004 20:13:09 Vu / téléchargé: 7 998 / 1 337

Note :
Aucune note

Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Vous trouverez dans ce zip un petit parser xml, qui permet d'exploiter un fichier xml.
Cette classe ne gère pas les commentaires et infos du xml, elle permet uniquement de charger en mémoire un fichier xml; de plus elle ne gère que 5 imbrications de tag en écriture (voir la source).
 

Source

  • // lecture du fichier xml
  • xml.Initialize("./test.xml");
  • // recherche du tag test
  • Tag = xml.Search("/test");
  • // récupération de premier tag enfant de test
  • Tag = xml.GetChild(Tag);
  • while(Tag != NULL) // tant qu'il y a un tag enfant ...
  • {
  • x = xml.GetChild(Tag); // get x
  • y = xml.NextChild(x); // get y
  • text = xml.NextChild(y); // get text
  • r = xml.NextChild(text);
  • g = xml.NextChild(r);
  • b = xml.NextChild(g);
  • //AfxMessageBox(text->pcValue);
  • WriteWindow(this->GetDC()->m_hDC,
  • atoi(x->pcValue),
  • atoi(y->pcValue),
  • text->pcValue, RGB(atoi(r->pcValue),atoi(g->pcValue),atoi(b->pcValue)));
  • Tag = xml.NextChild(Tag);
  • }
  • xml.WriteTo("./test.xml");
		// lecture du fichier xml
		xml.Initialize("./test.xml");

		// recherche du tag test
		Tag = xml.Search("/test");
		// récupération de premier tag enfant de test
		Tag = xml.GetChild(Tag);
		while(Tag != NULL) // tant qu'il y a un tag enfant ...
		{
			x = xml.GetChild(Tag);	// get x 
			y = xml.NextChild(x);	// get y
			text = xml.NextChild(y);	// get text
			r = xml.NextChild(text);
			g = xml.NextChild(r);
			b = xml.NextChild(g);

			//AfxMessageBox(text->pcValue);
			WriteWindow(this->GetDC()->m_hDC,
					atoi(x->pcValue),
					atoi(y->pcValue),
					text->pcValue, RGB(atoi(r->pcValue),atoi(g->pcValue),atoi(b->pcValue)));
			Tag = xml.NextChild(Tag);
		}
		xml.WriteTo("./test.xml");

Conclusion

L'exemple fournit affiche du texte selon le contenu du fichier test.xml. (capture)
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

04 décembre 2004 20:13:11 :

Commentaires et avis

signaler à un administrateur
Commentaire de Kirua le 05/12/2004 12:19:33

"elle ne gère que 5 imbrications de tag en écriture"

j'ai pas regardé le code mais je suppose que si tu as ce genre de contrainte, c'est que tu n'as pas utilisé de récursion dans ta lecture. idéalement il te faudrait un N-arbre dynamique pour pvr passer outre ce genre de problèmes. renseigne-toi de ce côté là pê, ça pourrait t'aider à améliorer la classe :)

signaler à un administrateur
Commentaire de jhwnd le 05/12/2004 21:22:19

La lecture ne pose pas de problème sur le nombre de tag bien que je n'utilise pas la récursivité. C'est juste que je n'ai pas vraiment  traiter le problème d'écriture de fichier. Alors j'ai fait un pizalé qui ne gère que 5 niveaux d'imbrications en écriture.
Si cette fonction interesse quelqu'un je mettrai à jour ma source.

Merci pour ton commentaire.

signaler à un administrateur
Commentaire de Kornferki le 06/12/2004 14:32:20

Dis, comment se fait il que le fichier test.xml soit modifie lors de l execution de ton prog ?

J ai insere le contenu d un autre fichier xml dans le fichier test.xml et apres execution, il ne me restait plus que les deux premieres balises .....

signaler à un administrateur
Commentaire de jhwnd le 06/12/2004 16:44:28

le fichier test.xml est modifié par la ligne : xml.WriteTo("./test.xml");.
Si l'écriture c'est mal passé, c'est que la lecture a souffert aussi, peux tu me mettre à dispo ton exemple de fichier sur un site ?

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.