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

Bibliothèques Discussion :

parsing XML et création d'objet : Organisation


Sujet :

Bibliothèques

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2002
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 50
    Points : 26
    Points
    26
    Par défaut parsing XML et création d'objet : Organisation
    Bonjour,

    J'aimerais PARSER un fichier XML et créer par la suite différents objets correspondants à chaque balise.
    Par-exemple :
    - si on rencotre une balise ==> Créé un objet
    - si on rencotre une sous-balise, créer un objet contenu dans l'ojet juste au dessus
    - ...

    Enfin, bref, comment organiser le code pour que ça soit assez générique et automatique : notamment, par-exemple si je décide de rajouter une balise, que la modification de code soit pas un peu partout, et soit facile à mettre en place.


    Comment vous organiseriez-vous?


    Merci d'avance...

    Chris.

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Points : 785
    Points
    785
    Par défaut
    Actuellement, à part employer des outils de génération de code, y a pas grand chose à ma connaissance.

    Par ex, je travaille sur un petit script ruby qui parse le schéma xml d'un fichier xml pour créer les objets et faire la validation des données.

  3. #3
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 370
    Points : 40 164
    Points
    40 164
    Par défaut
    Bien le bonsoir,

    Au risque de dire une banalité...

    Citation Envoyé par chris_wafer_2001
    J'aimerais PARSER un fichier XML et créer par la suite différents objets correspondants à chaque balise.
    Par-exemple :
    - si on rencotre une balise ==> Créé un objet
    - si on rencotre une sous-balise, créer un objet contenu dans l'ojet juste au dessus
    - ...
    un schéma d'extraction XML DOM ne conviendrait-il pas tout simplement à tes besoins ? Ca créerait un arbre représentant ton fichier XML. Ainsi on retrouverait l'aspect objets, sous-objets.
    Et donc, ne suffirait-il pas d'utiliser une bibliothèque d'extraction de données XML DOM pour t'en sortir ?

  4. #4
    Membre éclairé
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Points : 785
    Points
    785
    Par défaut
    en gros, ça serait lui faciliter la vie, mais après, il devra tout de même réaliser un mapping DOM <-> objet C++.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Novembre 2002
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 50
    Points : 26
    Points
    26
    Par défaut
    Y aurait pas moyen d'utiliser le design pattern Builder??? Avec une chaîne de resposabilité???

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 47
    Points : 47
    Points
    47
    Par défaut
    Tu veux faire de la persitance XML ? (sérialisation / désérialisation)
    Si c'est le cas : -> boost

  7. #7
    Nouveau membre du Club
    Inscrit en
    Novembre 2002
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 50
    Points : 26
    Points
    26
    Par défaut
    Je ne comprends pas.

    Je suis assez débutant.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 47
    Points : 47
    Points
    47
    Par défaut
    En fait, ce que tu veux faire me fait assez penser à de la sérialisation...
    C'est le fait de sauver l'état d'un objet de manière à pouvoir le récupérer plus tard !

    Un des formats de sérialisation possible (de sauvegarde de l'état d'un objet si tu préfères) est le XML.

    D'un objet C++, tu peux sauver son état en XML, et à partir de l'XML, tu peux restaurer son état.

    ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    class toto
    {
       private :
          int m_valeur;
    };
     
    class titi
    {
       private :
         toto m_classe;
         bool m_flag;
    }
    En serialisant la classe titi, ça pourrait donner un XML comme ça :
    (Ce n'est qu'un exemple, le format utilisé par boost est différent)

    <class>
    <name> titi <name>
    <attributes>
    <class>
    <name> toto <name>
    <attributes>
    <int>999</int>
    </attributes>
    </class>
    <bool>true</bool>
    </attributes>
    </class>

    Dans ce cas, le truc, c'est que pour désérialiser (XML vers C++), tu dois avoir un objet de type titi instancié...

    Mais si tu veux que ça soit plus souple, tu peux avoir un objet conteneur (qui soit bien connu), qui contient une liste de n'importe quel objet...
    (la sérialisation de liste est supprotée dans boost).

    Tu pourrais ensuite parcourir la liste pour déterminer de quel objet c++ il s'agit...

    P ê cela ne répond-il pas à tes besoins ?

  9. #9
    Nouveau membre du Club
    Inscrit en
    Novembre 2002
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 50
    Points : 26
    Points
    26
    Par défaut
    c quoi boost???

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 47
    Points : 47
    Points
    47
    Par défaut
    Une bibliothèque à base de template comme la STL.
    Une partie de boost devrait être intégrée dans le prochain standard C++...

  11. #11
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Ce que tu veux c'est créer un arbre d'objet à partir d'un fichier XML.
    C'est ce que fait n'importe quelle implémentation de DOM (comme libxml++).
    Voilà t'as ta réponse, question suivante ?

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 47
    Points : 47
    Points
    47
    Par défaut
    Oui cependant, un element DOM n'est pas un objet metier...
    Il faut faire tout un travail de convertion ensuite...

  13. #13
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Le XML c'est des données.
    La notion de "métier" n'a ici aucun sens.

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Août 2003
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 159
    Points : 171
    Points
    171
    Par défaut
    Perso, je conseillerai SAX.
    Beaucoup plus simple pour un debutant.
    il pourra creer ses objetc à chaque qu'il rencontre un élément interessant.

  15. #15
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Au contraire, SAX est beaucoup plus chiant à utiliser.

Discussions similaires

  1. Réponses: 16
    Dernier message: 10/05/2012, 20h51
  2. [XStream] Parse XML vers objet Java
    Par benjibul dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 22/06/2011, 16h09
  3. [PowerBuilder] Création d'objets dynamiques
    Par Béné123456789 dans le forum Powerbuilder
    Réponses: 3
    Dernier message: 12/06/2006, 00h33
  4. [FLASH MX2004] Création d'objet dynamiquement
    Par noarno dans le forum Flash
    Réponses: 3
    Dernier message: 15/12/2004, 11h00
  5. [C#] Créer un fichier Xml à partir d'un objet
    Par Troopers dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/09/2004, 13h23

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