cs_Alain Proviste
Messages postés908Date d'inscriptionjeudi 26 juillet 2001StatutModérateurDernière intervention 1 février 2015
-
11 avril 2005 à 21:28
cs_ip2x
Messages postés63Date d'inscriptionmercredi 9 février 2005StatutMembreDernière intervention27 janvier 2009
-
14 mai 2007 à 20:56
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_ip2x
Messages postés63Date d'inscriptionmercredi 9 février 2005StatutMembreDernière intervention27 janvier 2009 14 mai 2007 à 20:56
# TreeNode tn = new TreeNode();
# string tnText = xn.Name;
#
# // il y a des attributs
# if (xn.Attributes != null && xn.Attributes.Count > 0)
# {
#
# foreach (XmlAttribute attr in xn.Attributes) // parcours des attributs
# tnText += attr.Name + "=" + attr.Value + " " ;
# // ajout des attributs,
# // nom de l'attribut puis sa valeur
# }
tn.Text = tnText;
Voila... pas testé mais ça devrait etre correct...
cavocavu
Messages postés1Date d'inscriptionmercredi 18 avril 2007StatutMembreDernière intervention19 avril 2007 19 avril 2007 à 10:09
Salut,
Bon déjà merci pour ce code il marche nikel et c'est tout à fait ce qu'il me fallait... Ou presque.
En fait j'essaie de l'adapter à mon cas particulier en changeant quelques petites choses mais je débute en C# et je dois dire que je galère pas mal.
Par exemple j'aimerais que les attributs ne soient pas dans un fils mais dans le nom du père. J'ai essayé plusieurs trucs mais bon j'ai des erreurs à chaque fois et je pense que je ne fais pas du tout comme il faut.
Si quelqu'un pouvait m'aider ca serait super. Merci d'avance
cs_ip2x
Messages postés63Date d'inscriptionmercredi 9 février 2005StatutMembreDernière intervention27 janvier 2009 4 avril 2007 à 12:36
Donc j'ai fait la fonction qui, basée sur l'exemple ci-dessus, génére le document Xml.
Jackmalone
Messages postés3Date d'inscriptionmardi 5 juillet 2005StatutMembreDernière intervention20 août 2006 19 août 2006 à 17:53
Bonjour,
tout d'abord, merci pour ton code qui est bien utile.
Je suis débutant et j'arrive pas à remplir un treeView placé sur un formulaire avec les données du xml. Mon treeView s'appel "treeView1".
J'ai essayé ceci mais sans succès:
treeView1.Nodes = TreeXML.GetTreeNodeFromXML("Mon URL");
Et j'ai comme erreurs:
Error 1: Property or indexer 'System.Windows.Forms.TreeView.Nodes' cannot be assigned to -- it is read only
Error 2 Cannot implicitly convert type 'System.Windows.Forms.TreeNode' to 'System.Windows.Forms.TreeNodeCollection'
Quelqu'un peut il m'aider?
Merci!!
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 10 mai 2006 à 22:51
Voila ta note est enlevée, tu devrais pouvoir renoter.
cs_nadir80
Messages postés2Date d'inscriptiondimanche 5 mars 2006StatutMembreDernière intervention10 mai 2006 10 mai 2006 à 22:07
moi je met 9/10 car apparement je peux pas changer le vote :-( dsl pour cette boulette...
cs_nadir80
Messages postés2Date d'inscriptiondimanche 5 mars 2006StatutMembreDernière intervention10 mai 2006 10 mai 2006 à 22:03
bonjour j'ai un pepin !!!!!!!!
le code je le trouve tip top!!! de la balle!!!! c'est ce que je cherché!! MAIS je cherche un retour pour une application trés sérieuse :-( donc : TreeView -> Fichier XML s'il y a moyen de m'aidé!!
ps : je suis débutant....euh je crois que ca veux dire plein de chose :-s
merci d'avance
moha_yougo
Messages postés40Date d'inscriptionsamedi 28 janvier 2006StatutMembreDernière intervention 1 avril 2006 15 mars 2006 à 13:08
c bon c régler j'ai fait ça
// parcours des sous-elements XML
moha_yougo
Messages postés40Date d'inscriptionsamedi 28 janvier 2006StatutMembreDernière intervention 1 avril 2006 15 mars 2006 à 12:38
hello,every body
j'utilise cette classe treeXML dans TP je ne veut pas avoir les commentaire dans le treeView
comment faire ça sans changer grand choose
j'ai utiliser xn.nextsibling mais rien a faire les commentaire sont toujours la.
comment faire????????!!!
cs_Alain Proviste
Messages postés908Date d'inscriptionjeudi 26 juillet 2001StatutModérateurDernière intervention 1 février 20152 14 avril 2005 à 20:26
merci d'avoir commenté :p
maintenant c'est très à sa place dans tutoriaux ;)
sebseb42
Messages postés495Date d'inscriptiondimanche 6 juillet 2003StatutMembreDernière intervention 9 novembre 20071 14 avril 2005 à 10:55
ah ouais :), mais j'ai pas fait ca car il y a vraiment beaucoup trop de type, et sinon j'aurais plutot fait un truc mieux, du style
switch (xn.NodeType)
{
case XmlNodeType.Texte:
...
case XmlNodeType.CDATA:
...
// etc...
}
cs_Warny
Messages postés473Date d'inscriptionmercredi 7 août 2002StatutMembreDernière intervention10 juin 2015 14 avril 2005 à 08:47
C'est infiniment plus clair.
Pour tes lignes
// le sous-element XML n'est pas une balise mais une valeur textuelle
if (xn.Value != null && xn.Value != "")
tn.Text = xn.Value;
Je pense que tu peux tester le type d'objet avec une ligne comme (c'est à corriger, mais tu comprendras l'esprit), puis traiter en utilisant éventuellement un cast pour obtenir un typage plus fort.
//Recherche le type du noeud
switch (xn.GetType().ToString())
{
case "XmlText": //si c'est du texte
....
break;
case "XmlCDataSection": //si c'est une section CDATA
...
break;
default: //Sinon, on recherche les noeud enfants
...
break;
}
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 12 avril 2005 à 21:20
C'est vrai que ça ne donne pas super ici, mais si le code est copié dans VS par exemple, ça ne pose aucun problème !
sebseb42
Messages postés495Date d'inscriptiondimanche 6 juillet 2003StatutMembreDernière intervention 9 novembre 20071 12 avril 2005 à 18:19
Voila, j'ai trouver le boutton Edit, et j'ai commenté :)
Je trouve pas ca plus lisible, mais au moins mnt pu personne n'as d'excuses :P
sebseb42
Messages postés495Date d'inscriptiondimanche 6 juillet 2003StatutMembreDernière intervention 9 novembre 20071 12 avril 2005 à 17:59
je vous repond :)
Bidou : "Les commentaires ne sont pratiquement jamais superflu, pour ne pas dire jamais (surtout si tu fais ce code pour les débutants...)"
Personellement je trouve que les commentaires obscurcissent le code, je veux bien ecrire des explications detaillés "apres" le code, mais pas dedans. Ceux qui ont deja lu des codes GNU comprendrons ce que je veux dire.
"Je suis certain que quelques mots d'explications pour les novices ne seraient pas de trop"
Oui, ca on est d'accord, et c'est justement ce pourquoi le forum existe, si des gents veulent des explications, qu'ils n'hesite surtout pas a poser des questions, nous sommes en train de demontrer que le forum est bel et bien actif ;)
Alain Proviste : "commente le un peu pour ceux qui viendront le consulter dans tutoriaux et qui ne comprendront pas :)
non ?"
Je ne suis pas vraiment contre cette idée si vous insistez, mais je n'ai pas trouver le boutton "Edit" :S
Si quelqu'un sait comment je peux editer mon post sans ennuyer Nix, je suis preneur
Warmy : "Tu n'as sans doute pas encore vécu cette situation qui se résume à :
Si tu peux pas lire ton code, réécris le !!!
Tu ne comprend pas à quoi sert ton code, élimine-le. Si ça marche pas, réécris tout."
Non en effet je n'ai jamais vecu ca, generallement je structure mon code le mieux possible, je le fragmente et range les fonctionnalités dans des fichiers leur caracterisant cette fonctionnalité, et j'ai une tres bonne memoire, je retrouve toujours mon code comme il faut et tres peu de relecture me suffit a replonger dans un projet mis de coté, meme si c'est depuis plus d'un an :)
Mais je concoit que ceux qui lise mon tuto peuvent pas se mettre dans ma tete.
Ceci juste pour dire que celui qui n'arrive pas a relire son code, c'est quand meme quelqu'un qui baisse les bras vraiment trop vite, ou alors quelqu'un qui code vraiment comme un porc, et dans n'importe quel cas, cette personne n'as aucune excuse.
Bref, je crois avoir outre-passé largement le sujet, desoler pour mon egarement.
cs_Warny
Messages postés473Date d'inscriptionmercredi 7 août 2002StatutMembreDernière intervention10 juin 2015 12 avril 2005 à 14:13
Les commentaires c'est vital, même sur un code court.
Tu n'as sans doute pas encore vécu cette situation qui se résume à :
Si tu peux pas lire ton code, réécris le !!!
Tu ne comprend pas à quoi sert ton code, élimine-le. Si ça marche pas, réécris tout.
Et là tu maudit le jour où tu as décidé que les commentaires étaient inutiles
cs_Alain Proviste
Messages postés908Date d'inscriptionjeudi 26 juillet 2001StatutModérateurDernière intervention 1 février 20152 12 avril 2005 à 12:17
j'en conviens mais même si le code peut te paraitre transparent (c'est toi qui l'a écrit ok) commente le un peu pour ceux qui viendront le consulter dans tutoriaux et qui ne comprendront pas :)
non ?
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 12 avril 2005 à 08:38
Les commentaires ne sont pratiquement jamais superflu, pour ne pas dire jamais (surtout si tu fais ce code pour les débutants...)
Je suis certain que quelques mots d'explications pour les novices ne seraient pas de trop.
sebseb42
Messages postés495Date d'inscriptiondimanche 6 juillet 2003StatutMembreDernière intervention 9 novembre 20071 11 avril 2005 à 21:36
Bah je dois admettre que je ne savais pas trop quoi mettre d'autre, et puis c'est plutot que le de code qui aide les debutant a comprendre, et les experimenter a voir la chose d'une approche differente si la leur n'est pas ainsi.
C'est vrai que ce n'est pas vraiment tu tut, mais ce code en soi n'as strictement aucune utilité "pratique".
cs_Alain Proviste
Messages postés908Date d'inscriptionjeudi 26 juillet 2001StatutModérateurDernière intervention 1 février 20152 11 avril 2005 à 21:28
14 mai 2007 à 20:56
# string tnText = xn.Name;
#
# // il y a des attributs
# if (xn.Attributes != null && xn.Attributes.Count > 0)
# {
#
# foreach (XmlAttribute attr in xn.Attributes) // parcours des attributs
# tnText += attr.Name + "=" + attr.Value + " " ;
# // ajout des attributs,
# // nom de l'attribut puis sa valeur
# }
tn.Text = tnText;
Voila... pas testé mais ça devrait etre correct...
19 avril 2007 à 10:09
Bon déjà merci pour ce code il marche nikel et c'est tout à fait ce qu'il me fallait... Ou presque.
En fait j'essaie de l'adapter à mon cas particulier en changeant quelques petites choses mais je débute en C# et je dois dire que je galère pas mal.
Par exemple j'aimerais que les attributs ne soient pas dans un fils mais dans le nom du père. J'ai essayé plusieurs trucs mais bon j'ai des erreurs à chaque fois et je pense que je ne fais pas du tout comme il faut.
Si quelqu'un pouvait m'aider ca serait super. Merci d'avance
4 avril 2007 à 12:36
C'est là : http://www.csharpfr.com/infomsg_GENERER-XML-PARTIR-TREENODECOLLECTION-TREEVIEW_914653.aspx#5
3 avril 2007 à 18:58
J'ai enormement de mal a regénérer mon xml de la mm maniere...
20 août 2006 à 03:50
19 août 2006 à 19:03
19 août 2006 à 17:53
tout d'abord, merci pour ton code qui est bien utile.
Je suis débutant et j'arrive pas à remplir un treeView placé sur un formulaire avec les données du xml. Mon treeView s'appel "treeView1".
J'ai essayé ceci mais sans succès:
treeView1.Nodes = TreeXML.GetTreeNodeFromXML("Mon URL");
Et j'ai comme erreurs:
Error 1: Property or indexer 'System.Windows.Forms.TreeView.Nodes' cannot be assigned to -- it is read only
Error 2 Cannot implicitly convert type 'System.Windows.Forms.TreeNode' to 'System.Windows.Forms.TreeNodeCollection'
Quelqu'un peut il m'aider?
Merci!!
10 mai 2006 à 22:51
10 mai 2006 à 22:07
10 mai 2006 à 22:03
le code je le trouve tip top!!! de la balle!!!! c'est ce que je cherché!! MAIS je cherche un retour pour une application trés sérieuse :-( donc : TreeView -> Fichier XML s'il y a moyen de m'aidé!!
ps : je suis débutant....euh je crois que ca veux dire plein de chose :-s
merci d'avance
15 mars 2006 à 13:08
// parcours des sous-elements XML
foreach (XmlNode subxn in xn.ChildNodes)
{
if(subxn.NodeType != XmlNodeType.Comment)
{
tn.Nodes.Add(DoElement(subxn));
}
}
bonne chance
15 mars 2006 à 12:38
j'utilise cette classe treeXML dans TP je ne veut pas avoir les commentaire dans le treeView
comment faire ça sans changer grand choose
j'ai utiliser xn.nextsibling mais rien a faire les commentaire sont toujours la.
comment faire????????!!!
14 avril 2005 à 20:26
maintenant c'est très à sa place dans tutoriaux ;)
14 avril 2005 à 10:55
switch (xn.NodeType)
{
case XmlNodeType.Texte:
...
case XmlNodeType.CDATA:
...
// etc...
}
14 avril 2005 à 08:47
Pour tes lignes
// le sous-element XML n'est pas une balise mais une valeur textuelle
if (xn.Value != null && xn.Value != "")
tn.Text = xn.Value;
Je pense que tu peux tester le type d'objet avec une ligne comme (c'est à corriger, mais tu comprendras l'esprit), puis traiter en utilisant éventuellement un cast pour obtenir un typage plus fort.
//Recherche le type du noeud
switch (xn.GetType().ToString())
{
case "XmlText": //si c'est du texte
....
break;
case "XmlCDataSection": //si c'est une section CDATA
...
break;
default: //Sinon, on recherche les noeud enfants
...
break;
}
12 avril 2005 à 21:20
12 avril 2005 à 18:19
Je trouve pas ca plus lisible, mais au moins mnt pu personne n'as d'excuses :P
12 avril 2005 à 17:59
Bidou : "Les commentaires ne sont pratiquement jamais superflu, pour ne pas dire jamais (surtout si tu fais ce code pour les débutants...)"
Personellement je trouve que les commentaires obscurcissent le code, je veux bien ecrire des explications detaillés "apres" le code, mais pas dedans. Ceux qui ont deja lu des codes GNU comprendrons ce que je veux dire.
"Je suis certain que quelques mots d'explications pour les novices ne seraient pas de trop"
Oui, ca on est d'accord, et c'est justement ce pourquoi le forum existe, si des gents veulent des explications, qu'ils n'hesite surtout pas a poser des questions, nous sommes en train de demontrer que le forum est bel et bien actif ;)
Alain Proviste : "commente le un peu pour ceux qui viendront le consulter dans tutoriaux et qui ne comprendront pas :)
non ?"
Je ne suis pas vraiment contre cette idée si vous insistez, mais je n'ai pas trouver le boutton "Edit" :S
Si quelqu'un sait comment je peux editer mon post sans ennuyer Nix, je suis preneur
Warmy : "Tu n'as sans doute pas encore vécu cette situation qui se résume à :
Si tu peux pas lire ton code, réécris le !!!
Tu ne comprend pas à quoi sert ton code, élimine-le. Si ça marche pas, réécris tout."
Non en effet je n'ai jamais vecu ca, generallement je structure mon code le mieux possible, je le fragmente et range les fonctionnalités dans des fichiers leur caracterisant cette fonctionnalité, et j'ai une tres bonne memoire, je retrouve toujours mon code comme il faut et tres peu de relecture me suffit a replonger dans un projet mis de coté, meme si c'est depuis plus d'un an :)
Mais je concoit que ceux qui lise mon tuto peuvent pas se mettre dans ma tete.
Ceci juste pour dire que celui qui n'arrive pas a relire son code, c'est quand meme quelqu'un qui baisse les bras vraiment trop vite, ou alors quelqu'un qui code vraiment comme un porc, et dans n'importe quel cas, cette personne n'as aucune excuse.
Bref, je crois avoir outre-passé largement le sujet, desoler pour mon egarement.
12 avril 2005 à 14:13
Tu n'as sans doute pas encore vécu cette situation qui se résume à :
Si tu peux pas lire ton code, réécris le !!!
Tu ne comprend pas à quoi sert ton code, élimine-le. Si ça marche pas, réécris tout.
Et là tu maudit le jour où tu as décidé que les commentaires étaient inutiles
12 avril 2005 à 12:17
non ?
12 avril 2005 à 08:38
Je suis certain que quelques mots d'explications pour les novices ne seraient pas de trop.
11 avril 2005 à 21:36
C'est vrai que ce n'est pas vraiment tu tut, mais ce code en soi n'as strictement aucune utilité "pratique".
11 avril 2005 à 21:28