begin process at 2008 07 06 12:57:04
1 205 544 membres
121 nouveaux aujourd'hui
14 119 membres club

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 059 / 1 278

Note :
Aucune note

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

Description

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)
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

04 décembre 2004 20:13:11 :
  • 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

Pub



Appels d'offres

Plugin Dialer outlook
Budget : 2 000€
Travail graphique- ill...
Budget : 1 000€
creation de marque et ...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Boutique

Boutique de goodies CodeS-SourceS