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 :

[XML][C++] Débutant , comment démarrer ?


Sujet :

Bibliothèques

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut [XML][C++] Débutant , comment démarrer ?
    Bonjour a tous, suite a de nombreuses recommendatiosn, j'ai prit le décision de me mettre au xml ( mon but primaire a travers ca, est de "parser" de simple fichier contenant mes données et de les récupéré,rien de mechant en somme, mais d'une maniére plus efficasse ( et simple ? ) qu'a la main sur un fichier .txt .

    J'ai tout d'abord lu un tutorial d'intro treés bien fait je trouve :
    www.tizag.com

    On y aprend toutes les bases de formattage .Rien de bien difficile, mais un passage obligé en somme .

    Ensuite, j'ai telechargé un edtieur xml ( pas encore testé ) .
    Suite a lecture d'un fixe de ce forum -> Bonfire Studio

    Maintenant je supose qu'il me reste 2 choses a faires .
    1) ecrire un fichier trés simple en xml avec BonFire
    2) Trouver une lib ( je prog en c ++ ) capable de parser simplement un fichier xml .

    Ma question est la suivante : lequel me conseillez vous?
    Mes critéres sont :
    -efficassité & simplicité ( d'installation / utilisation )
    Je ne recherche pas quelques chose de trés poussé ( je pense ) .

    Un lein vers un tel produit serais génial ...et encore mieux un pti exemple d'un fichier xml / de la facons de le parser serais royal !
    Enfin je suis ouvert a toutes suggestions !
    merci d'avance

  2. #2
    Membre actif Avatar de blackhorus
    Inscrit en
    Février 2003
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 209
    Points : 226
    Points
    226
    Par défaut
    si tu cherche plutot la simplicité, je te conseille TinyXML :
    http://www.grinninglizard.com/tinyxml/

    sinon, l'efficacité
    http://xml.apache.org/xerces-c/

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    xerces , je n'ai rien touvé de TRES détaillé conernant l'installation et l'utilisation ( le probléme étant que je suis encore TRE TRES mauvais en ce qui concerne l'instal de lib anexe ( allez savoir pourquoi ca veut pas rentrer ...)

    J'ai telecharger tinyXMl suite a des conseils .
    Ca a l'air plutot simple et ca a l'air de faire juste ce qu'il me faut !

    Par contre j'ai 1 pb, quand je veut tester le tout dans un projet perso, j'inclue tinyxml.h ; et je fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      TiXmlDocument doc( "test.xml" );
    	   doc.LoadFile();
    Et paf, 7 erreurs ( unresolved externals )
    snif bon je vais continuer d'essayer

    edit: aprés un re-tour sur google, j'ai vu que ca signifiait souvent que l'on fait appel a des fonction non déclaré .
    Donc soit j'ai oublié d'inclure qquchose . Soit un me manque une lib .

  4. #4
    Membre actif Avatar de blackhorus
    Inscrit en
    Février 2003
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 209
    Points : 226
    Points
    226
    Par défaut
    Citation Envoyé par Clad3

    Et paf, 7 erreurs ( unresolved externals )
    snif bon je vais continuer d'essayer

    edit: aprés un re-tour sur google, j'ai vu que ca signifiait souvent que l'on fait appel a des fonction non déclaré .
    Donc soit j'ai oublié d'inclure qquchose . Soit un me manque une lib .
    d'après la doc, de tinyXML :
    To Use in an Application:

    Add tinyxml.cpp, tinyxml.h, tinyxmlerror.cpp, tinyxmlparser.cpp, and tinystr.cpp to your project or make file. That's it! It should compile on any reasonably compliant C++ system. You do not need to enable exceptions or RTTI for TinyXml.

  5. #5
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    hum deja mon fichier de doc n'est aps le meme ( un fichier a inclure en + )
    Add tinyxml.cpp, tinyxml.h, tinyxmlerror.cpp, tinyxmlparser.cpp, tinystr.cpp, and tinystr.h to your project or make file. That's it! It should compile on any reasonably compliant C++ system. You do not need to enable exceptions or RTTI for TinyXml.
    et si j'inclue totu ca dans l'ordre, j'ai un million d'erreur de linkage lol
    de ce type:
    edit: je pense que ca veint du fait qu'on inclu les .cpp correspodna au .h ... mais bon, meme sans ca, ca plante encore .

    EyLord error LNK2005: "class TiXmlOutStream & __cdecl operator<<(class TiXmlOutStream &,class TiXmlNode const &)" (??6@YAAAVTiXmlOutStream@@AAV0@ABVTiXmlNode@@@Z) already defined in EyLord.obj
    enfin voili voilou
    en incluant QUE tinyxml.h , je n'ai plus d'erreur ... masi bon m'en donne 7 a la compi du loadfile ...

  6. #6
    Membre actif Avatar de blackhorus
    Inscrit en
    Février 2003
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 209
    Points : 226
    Points
    226
    Par défaut
    balance les 7 erreurs pour voir !

  7. #7
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    EyLord error LNK2001: unresolved external symbol "protected: virtual class TiXmlNode * __thiscall TiXmlDocument::Clone(void)const " (?Clone@TiXmlDocument@@MBEPAVTiXmlNode@@XZ)

    EyLord error LNK2001: unresolved external symbol "protected: virtual void __thiscall TiXmlDocument::StreamOut(class TiXmlOutStream *)const " (?StreamOut@TiXmlDocument@@MBEXPAVTiXmlOutStream@@@Z)

    EyLord error LNK2001: unresolved external symbol "public: virtual char const * __thiscall TiXmlDocument:arse(char const *,class TiXmlParsingData *,enum TiXmlEncoding)" (?Parse@TiXmlDocument@@UAEPBDPBDPAVTiXmlParsingData@@W4TiXmlEncoding@@@Z)

    EyLord error LNK2001: unresolved external symbol "public: virtual void __thiscall TiXmlDocument:rint(struct _iobuf *,int)const " (?Print@TiXmlDocument@@UBEXPAU_iobuf@@H@Z)

    ect....

  8. #8
    Membre actif Avatar de blackhorus
    Inscrit en
    Février 2003
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 209
    Points : 226
    Points
    226
    Par défaut
    t'es obligé d'inclure les fichiers CPP comme le stipule la doc, et te focaliser sur les erreurs que ça génére. tinyXML vient sous la forme de fichier source, et non sous forme de lib que tu rajoute au moment de linkage, donc en quelque sorte t'es obligé d'inclure les fichiers sources.

    essaye de compiler les fichiers example livré avec tinyxml, et voir si la phase de compilation passe sans problème.

  9. #9
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    le workspace contenat les 4 projt compile parfaitement .
    Et lorsque j'inclue tout les fichier demandé ca me génére les erreur du type cité + haut .

  10. #10
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    Hum, le probléme deveint + interessant lol , si j'inclue tout les fichier dans mon .cpp principale, ca compile ( je n'ai aps tsté de loadfile() encore masi ca ne devrai pas poser de pb )
    Alors que dans ma classe, ca ne passe pas :/ humm
    Une erreur dans ma hierachie de calsse sans doute, mais d'ou cela peut-il venir ?

  11. #11
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Ce n'est plus réellement un problème XML... Je déplace vers le forum C++

  12. #12
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    C'est exactement ce que j'allais suggéré
    Enfin je vient de googleler plus précisément mon probléme:

    ( les erreurs de linkage --> already defined in ... .obj )

    Et il en ressort que ce qui cause souvent ca c'est l'oublie de

    ifndef
    define

    endif dans le.h

    Mais mon fichier respecte ces précautions ; L'erreur de linkage me dit que ces fonction sont "already defined" dans mon fichier princiapl ( le fichier contenant le main() ). si ca peut vous aider ...

  13. #13
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Tu peux essayer de poster un code minimal mais complet qui reproduit le problème ?

  14. #14
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    un code minimal ... humm ca va etre difficile :/ il commence a y avoir un petit nombre conséquent de classe, et sans l'une d'elle , plus rien ne va compiler ...

    Enfin, ce type d'erreur doit provenir d'une action précise non ?
    Ce serait plus simple aprés pour identifier la source du pb .

  15. #15
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Ote moi un doute : tu ajoutes bien les .cpp de la lib à ton projet, tu ne les inclues pas dans d'autres .cpp ?

  16. #16
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    J'ajoute les 4 cpp et les 2.h ( -> add xisting item )
    et ensuite j'inclue ces 6 fichiers dans une sous-classe de mon prjet .
    Je ne les inclus null part d'autre ( les 6 fichiers) .

  17. #17
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    pb résolu ;o)


    En fait, il faialit juste : inclure les 2 fichier .h et ne aps oublier d'inclure les .h / .cpp a mon projet .... ( rho je suis t^te en l'air en ce moment ).
    Enfin j'ai eu du mal car pas mal de monde m'a donnée des indication différente :p un vrai jeux de piste hihi ; mais en fin de compte, merci a tous, je peut me lancer dans la création / parsing de mes fichier !!

  18. #18
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Pense au bouton RESOLU en bas à gauche

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/03/2010, 21h11
  2. [WD-2007] Comment démarrer du code après le remplissage des champs XML
    Par thehope dans le forum VBA Word
    Réponses: 2
    Dernier message: 03/02/2010, 20h22
  3. [XML Débutant] Comment traiter du XML à la volée?
    Par fumesec dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 02/05/2008, 15h29
  4. Réponses: 3
    Dernier message: 03/09/2007, 15h07

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