IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[C#] Treeview et XML


Sujet :

Windows Forms

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 130
    Par défaut [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.

  2. #2
    Membre Expert
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Par défaut
    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.

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 130
    Par défaut
    Ok merci, je me lance alors

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Treeview en XML petit problèmes
    Par 696969 dans le forum C#
    Réponses: 1
    Dernier message: 05/05/2012, 18h24
  2. Optimisation TreeView avec XML
    Par tmryuga dans le forum Composants VCL
    Réponses: 3
    Dernier message: 19/11/2007, 14h27
  3. Treeview To XML
    Par ssef_u dans le forum Windows Forms
    Réponses: 1
    Dernier message: 18/06/2007, 14h18
  4. [Treeview XML]
    Par lucimast dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 08/03/2006, 23h20
  5. Transformation XML-->XML en utilisant les treeview
    Par mmed dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 05/07/2005, 17h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo