TreeView et XML

breizhgatch Messages postés 7 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 26 octobre 2010 - 11 oct. 2010 à 18:33
breizhgatch Messages postés 7 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 26 octobre 2010 - 26 oct. 2010 à 14:45
HEllo.

J'ai un TreeView qui affiche un doc XML mais en plus simplifié.
Je cherche un moyen d'associer chaque TreeNode au noeud XML auquel il correspond.
J'ai pensé à utiliser la propriété TreeNode.Tag et sauvegarder le XmlNode dedans mais ca risque d'être gourmand en mémoire cette affaire si le xml est important...

Si vous avez une solution, je suis preneur!

a+

.: BreihGatch

2 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
12 oct. 2010 à 20:23
salut,

un coup de google et hop
http://support.microsoft.com/kb/317597

les methodes recursives aident.
0
breizhgatch Messages postés 7 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 26 octobre 2010
26 oct. 2010 à 14:45
Merci de ta réponse. Oui, le récursif est déjà en place. mais le probleme est toujours sur le lien entre le noeud TreeView et le noeud xml: comment garder ce lien de façon intelligente, peu gourmante en ressource?

Bon, depuis la création de ce post, j'ai trouvé un moyen qui me convient: plutot que de stocker l'info xml dans chaque node du treeview, je fais l'inverse! c-a-d que je stocke l'information du noeud treeview (i.e. TreeNode.Handle) dans le XML lors de la crétion/maj de l'arbre (i.e. ajout d'un nouvel attribut au noeud xml traité). ensuite, si je clique sur un noeud du treeview, il ne me reste plus qu'à faire une requete xpath de son handle pour récupérer le noeud XML.. voilà.

un chouilla de code pour illustrer:
string xpath = String.Format("//Noeud[@handle='{1}']", this.treeView1.SelectedNode.Handle.ToString());
XmlNode xNode = this.doc.SelectSingleNode(xpath);



si vous avez mieux, partagez-le!

.: BreihGatch
0
Rejoignez-nous