-
[C#] Treeview et XML
Bonjour,
Je suis en train de réaliser un petit éditeur basé sur XML.
L'utilisateur doit pouvoir éditer les données XML, pour cela je lui mets un Treeview dans lequel je charge uniquement le nom des elements. (le treeview servira a charger les valeurs dans un propertyGrid)
Etant donné que l'utilisateur peut, supprimer des elements, en ajouter, modifier les attributs etc, j'utilise DOM. (De plus les fichiers xml ne devraient jamais être trop conséquent).
Ma question est la suivante; comment puis-je retrouver dans l'arbre DOM l'élement correpond a celui que l'utilisateur à cliqué dans le treevew ?
En effet, il y a en gros 9 elements différents mais chacun peut avoir une bonne dizaine d'attributs différents, ils ne possèdent également pas forcément d'ID. Des elements de même type peuvent donc parfois être presque identiques à l'exception d'un ou plusieurs attributs....
L'utilisation de requetes par xpath me parait donc limités, d'autant que je ne tiens pas a avoir une représentation exhaustive de mon xml dans le treeview.
Une solution "brute" serait de récupérer le numéro du noeud cliqué dans le treeview et d'iterer le dom jusqu'a ce numéro de noeud pour récupérer les valeurs, mais ça ne me parait pas très élégant ...
Bref j'ai sans doute du passer à côté de quelques choses, merci de m'éclairer un peu sur ce problème.
-
Les deux solutions que tu propose sont parfaitement honnetes
- recuperer l'index du noeud dans la branche, l'index du parent dans sa section de branche etc jusqu'au root
- creer l'Xpath, c'est a peu pres pareil sauf qu'effectivement tu devrais y mettre beaucoup plus de choses dans ton treeview
L'autre solution serait de creer une class qui herite de TreeNode et qui contient la reference vers l'XmlNode qu'il represente, a la supression du noeud du treenode, bin tu propage cette supression a l'XmlNode tout simplement.
-
Ok merci, je me lance alors ;)