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

VB.NET Discussion :

Quelle classe XML utiliser ?


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2012
    Messages : 10
    Par défaut Quelle classe XML utiliser ?
    Bonjour,

    Tout d'abord, je précise que j'ai beaucoup cherché sur internet avant de solliciter le forum…

    Je travaille sur programme qui a besoin de lire des données stockées dans des fichiers XML dont je connais la structure :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <planning mois="06/2019" ...>
      <activité>
        <id>xxx</id>
        <date>
          <!-- … -->
          <listeparticipants>
            <participant>
              <!-- … -->
            </participant>
            <participant>
              <!-- … -->
            </participant>
          </listeparticipants>
        </date>
        <date>
          <!-- … -->
        </date>
      </activité>
      <activité>
        <!-- … -->
      </activité>
    </planning>
    J'ai besoin de pouvoir lire certains attributs de l'élément racine "planning", de rechercher (sur plusieurs fichiers éventuellement) une activité répondant à certains critère (type d'activité, date, id ) pour récupérer certaines données enfant / parent et les affecter aux propriétés d'une classe. Je dois également tester l'existence d'un élément et pouvoir le créer ou en modifier la valeur.

    .Net propose plusieurs classes pour lire et manipuler du XML : LINQ, XDocument, XmlDocument, XPathDocument, désérialisation XML…

    J'ai fait des tests avec certaines de ces classes mais je ne suis pas certain de travailler avec la bonne. Faut-il en choisir une ou l'autre suivant mes besoins (lecture ou écriture) ou est-il possible de n'utiliser qu'une seule "technologie" pour tous ces besoins ?
    Pourriez-vous me conseiller ? Un grand merci !

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    si l'xml suit bien la norme (je ne sais pas laquelle ^^) le mieux est la sérialisation/désérialisation
    ca permet en 2 lignes de code de transformer un fichier/string en une instance de classe et réciproquement (sans avoir à coder la lecture des noeuds donc)
    il y a même des sites ou tu colles de l'xml et ca te sors la classe qui va avec (et donc ca gagne le temps d'écriture de la classe) (VS fait aussi, peut etre via un plugin)

    sinon xdocument est en théorie plus simple à utiliser que xmldocument
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Expert confirmé

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    En gros, deux approches différentes sont possibles :
    • soit utiliser la sérialisation/désérialisation et manipuler des classes :
    • soit manipuler directement du XML (XmlDocument, XDocument, XPathDocument).


    Avec ce qui est dit, je pense que je privilégierais la manipulation direct de XML. A ce titre, je te conseille la classe XDocument, plus récente et plus facile à utiliser que XmlDocument, et qui peut s'utiliser avec Linq et XPath.

    Pour la recherche, des requêtes XPath feront a priori amplement l'affaire. Ensuite, il est très facile de vérifier l'existence ou non d'un noeud, de récupérer un attribut, de créer des éléments, etc...

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2012
    Messages : 10
    Par défaut
    Citation Envoyé par François DORIN Voir le message
    Bonjour,

    En gros, deux approches différentes sont possibles :
    • soit utiliser la sérialisation/désérialisation et manipuler des classes :
    • soit manipuler directement du XML (XmlDocument, XDocument, XPathDocument).


    Avec ce qui est dit, je pense que je privilégierais la manipulation direct de XML. A ce titre, je te conseille la classe XDocument, plus récente et plus facile à utiliser que XmlDocument, et qui peut s'utiliser avec Linq et XPath.

    Pour la recherche, des requêtes XPath feront a priori amplement l'affaire. Ensuite, il est très facile de vérifier l'existence ou non d'un noeud, de récupérer un attribut, de créer des éléments, etc...
    Merci beaucoup pour cette réponse très claire.
    Effectivement, après avoir perdu un peu de temps sur la déserialisation, je me suis rendu compte que ce n'était pas forcément le plus adapté puisque j'utilise certains éléments pour faire autre chose que de l'alimentation de propriétés.
    Par contre, je vais modifier mon code pour utiliser XDocument au lieu de XmlDocument...

    Problème résolu !

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

Discussions similaires

  1. Quelle bibliothèque XML utiliser ?
    Par pierrot106 dans le forum XML
    Réponses: 1
    Dernier message: 21/03/2015, 12h08
  2. Quelles classes faut-il utiliser?
    Par anaranjado dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 31/12/2008, 11h41
  3. [JAVA XML] : utilisation class générées par JAXB
    Par Michalak dans le forum Persistance des données
    Réponses: 0
    Dernier message: 31/10/2008, 15h43
  4. [SimpleXML] Quelle classe XML utiliser ?
    Par FrontLine dans le forum Bibliothèques et frameworks
    Réponses: 13
    Dernier message: 22/04/2008, 17h07
  5. Interface graphique, quelles classes utiliser?
    Par miniil dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 15/02/2006, 22h38

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