XmlTextReader + Au Secours !

Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
- - Dernière réponse : cs_Bidou
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
- 26 mai 2005 à 15:38
Bonjour à tous,



j'ai un fichier xml :



<nom> jean </nom>

50






<nom> paul </nom>

300




<voiture>

<type> 205 </type>

</voiture>



et en faite je voudrais remplir c'est classes avec :



Personne {

string nom ;

int age ;

}



Voiture {

int type ;

}



avec xml textReader j'ai pas trouvé pour se deplacer à l'interieur des
noeuds, par exemple pour dire si je trouve la balise Personne alors

Personne a new Personne() ; ensuite si je trouve la balise nom : a.nom "jean" ; etc...



Ma question est qq à t'il trouver un moyen efficace de remplir des classes avec un fichier xml ?



Par avance, merci.
Afficher la suite 

4 réponses

Messages postés
65
Date d'inscription
mercredi 6 avril 2005
Statut
Membre
Dernière intervention
26 août 2005
1
0
Merci
C'est tout simple tu as juste à utiliser ta classe XMLTextReader comme ça!!

Tu fais un tr.Read() puis tu as tr.Value qui contient la valeur textuel de ton noeud!



En testant tr.Name au préalable tu dois pouvoir arriver à faire ce que tu veux ;)
Commenter la réponse de cs_Globinours
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
43
0
Merci
Hello,

Je ne sais pas exactement ce que tu essayes de faire, mais la structure du fichier me paraît un peu étrange : pourquoi deux personnes et une seule voiture ?
Enfin je sais pas ce que tu dois faire exactement, mais ça me parait plus logique d'avoir une voiture par Personne, et donc d'avoir une implémentation dans ce genre la du fichier xml :

<?xml version="1.0"?>
<Test>

http://www.csharpfr.com/forum.v2.aspx?ID=465580

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
Commenter la réponse de cs_Bidou
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
2
0
Merci
c'etait pour l'exemple en faite mais

je pense que je vais utiliser xmldocument je cherche un algoritheme qui
permet de recuperer tout les noeuds parents puis tout les noeuds enfant
pour en extraire les données, si qq en avait un sous la main....
Commenter la réponse de cs_emmanuel9
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
43
0
Merci
Voila un code qui ne s'intéresse qu'aux éléments, ne prend pas les attributs en compte.
J'ai rapidement testé, ça semble fonctionner :

private
void ParseXml()
{
XmlDocument xDoc =
new XmlDocument();
xDoc.Load(myXmlFile);

if(xDoc.HasChildNodes) this.ParseNodeList(xDoc.ChildNodes);
}



private
void ParseNodeList(XmlNodeList xnl)
{

foreach(XmlNode xNode
in xnl)
{

if(xNode.HasChildNodes) this.ParseNodeList(xNode.ChildNodes);

else Console.WriteLine(xNode.Value);
}
}

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
Commenter la réponse de cs_Bidou