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

C++ Discussion :

Lire des fichiers XML en C++


Sujet :

C++

  1. #1
    Membre �clair� Avatar de ralf91
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    419
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 419
    Par d�faut Lire des fichiers XML en C++
    Bonjour,

    Je suis un novice dans la programmation C++, je souhaiterais lire des fichiers XML (en particulier des fichiers XML d�crivant des fichiers SVG) on m'a parl� de "libxml2" mais j'ai fait quelques recherches sur le net et j'ai trouv� que cette librairie est plut�t destin�e au langage C pas le C++ !? ensuite j'ai trouv� libxml++ pour le C++ mais je ne sais pas est ce que c'est la meilleure biblioth�que � utiliser ? la plus simple et surtout je cherche une biblioth�que l� o� je peux trouver de la doc bien faite ?!

    Connaitriez vous une bonne biblioth�que pour les lire fichiers XML avec C++ (pas le C) ? moi ce qui m'int�resse c'est juste lire le fichier !

    Si vous avez des liens ou des documents � me conseiller je vous serai tr�s reconnaissant.

    Merci.

  2. #2
    Membre �prouv�
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par d�faut
    Il existe �galement TinyXML.

  3. #3
    Membre �clair� Avatar de ralf91
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    419
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 419
    Par d�faut
    Pour tinyxml, je n'ai pas su comment l'utiliser !!!

    ben je l'ai installer sous linux directement grace au shell, donc lorsque j'ajoute
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    #include <tinyxml.h>
    ben il ne l'a pas reconnu au moment de la compilation !

    ensuite j'ai t�l�charg� un zip qui contient les sources de la biblioth�que tinyxml j'ai fait un make ensuite ... je n'ai pas su quoi faire ?

    Car j'ai deja vu cette lib en fait, j'ai commenc� � lire un tuto sur developpez.net ce tuto

    et il dit qu'il faudrait compiler et copier le tinyxml.h et tinystr.h ainsi que le fichier .a

  4. #4
    Membre �prouv�
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par d�faut
    Je ne pourrai pas t'aider : je l'ai utilis�e il y a deux ou trois ans, et c'�tait sur Windows...

  5. #5
    Membre Expert
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Par d�faut
    libxml++ est une bonne biblioth�que (la version ++ est un wrapper sur la version c si je ne me plante pas). Elle permet beaucoup plus que juste la lecture xml.

    TinyXml, je ne connais pas, mais si tu as juste besoin de lecture et de performance, il y a expat qui fonctionne bien (hmmm, je crois bien qu�expat c�est du C, m�me si �a s�utilise tr�s bien en C++).

    Concernant ton probl�me d�inclusion, sous linux il faut bien installer les paquets -dev pour pouvoir d�velopper (libtinyxml-dev sous debian, par exemple). Et normalement �a marche de suite.

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par d�faut
    Citation Envoy� par ralf91 Voir le message
    Pour tinyxml, je n'ai pas su comment l'utiliser !!!

    ben je l'ai installer sous linux directement grace au shell, donc lorsque j'ajoute
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    #include <tinyxml.h>
    ben il ne l'a pas reconnu au moment de la compilation !

    ensuite j'ai t�l�charg� un zip qui contient les sources de la biblioth�que tinyxml j'ai fait un make ensuite ... je n'ai pas su quoi faire ?

    Car j'ai deja vu cette lib en fait, j'ai commenc� � lire un tuto sur developpez.net ce tuto

    et il dit qu'il faudrait compiler et copier le tinyxml.h et tinystr.h ainsi que le fichier .a
    Salut ! Alors... quelle distrib linux utilises-tu ? Si tu es sur ubuntu, il faut souvent installer un paquet suppl�mentaire qui contient les infos de dev et notamment les headers. Lance "synaptics" en root et cherche les paquets qui ont rapport � tinyxml. Il y en a s�rement un qui s'appelle tinyxml-dev ou quelque chose du genre.

    Ensuite si tu fais ton �dition de lien comme il faut �a va bien se passer.

    Edit : J'avais pas vu le message de white-tentacle.

  7. #7
    Membre �clair� Avatar de ralf91
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    419
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 419
    Par d�faut
    Salut
    Ben j'utilise la distribution Fedora pas Debian, mais le paquet tinyxml -dev est bien install� ! mais �a ne fonctionne toujours pas ?! pour l'�dition des liens je ne vois pas trop ce que tu veux dire ?

  8. #8
    Membre Expert

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 49
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par d�faut
    Citation Envoy� par ralf91 Voir le message
    Salut
    Ben j'utilise la distribution Fedora pas Debian, mais le paquet tinyxml -dev est bien install� ! mais �a ne fonctionne toujours pas ?! pour l'�dition des liens je ne vois pas trop ce que tu veux dire ?
    V�rifie que le fichier /usr/include/tinyxml.h est bien pr�sent, et que les librairies /usr/lib/libtinyxml.* sont bien pr�sentes (il y a un .a et un .so, avec probablement un ou deux liens). Si ce n'est pas le cas, c'est que le package n'est pas install�. Si les fichiers sont pr�sents, alors tu n'auras pas de probl�me.

    Lorsque tu compiles un projet qui utilise tinyxml, il faut rajouter l'option -ltinyxml � tes flags de compilation, sans quoi tu auras des erreurs pendant l'�dition de lien (erreurs du type "unresolved external").
    [FAQ des forums][FAQ D�veloppement 2D, 3D et Jeux][Si vous ne savez pas ou vous en �tes...]
    Essayez d'�crire clairement (c'est � dire avec des mots fran�ais complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Caf�. C'est d�pass� tout �a.
    Et si vous �tes sages, vous aurez peut �tre vous aussi la chance de passer � la t�l�. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  9. #9
    Membre �clair� Avatar de ralf91
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    419
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 419
    Par d�faut
    C'est tres etrange ! lorsque je fais :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    yum install tinyxml
    Modules compl�mentaires charg�s*: langpacks, presto, refresh-packagekit
    Configuration du processus d'installation
    Le paquet tinyxml-2.6.1-2.fc15.i686 est d�j� install� dans sa derni�re version
    Rien � faire
    Mais lorsque je v�rifie dans :
    Je ne trouve pas le tinyxml.h !!!!!!!!!!!!!


    Franchement si on passe autant de temps pour l'installer !!! donc finalement le temps que l'on gagne pour lire des fichiers XML avec cette Lib on le perde dans l'installation !

  10. #10
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par d�faut
    Citation Envoy� par ralf91 Voir le message
    Franchement si on passe autant de temps pour l'installer !!! donc finalement le temps que l'on gagne pour lire des fichiers XML avec cette Lib on le perde dans l'installation !
    Non, �a c'est parce que tu es un d�butant que tu ne ma�trises pas l'installation et l'usage de biblioth�ques sur linux. Ce n'est pas la faute de la lib, ce sera la m�me chose avec toutes. Pour ta culture, l'auteur de la biblioth�que n'est souvent pas responsable du programme d'installation (1 par distro, �crit par un mainteneur de paquet ind�pendant la plupart du temps).

    Si le header n'est pas dans /usr/include, il est peut-�tre ailleurs, dans /usr/local/include ou m�me un autre dossier. Tu utilises quel outil pour compiler ?

  11. #11
    Membre �prouv�
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par d�faut
    Un petit makefile aurait �t� bienvenu, toutefois...

  12. #12
    Membre �clair� Avatar de ralf91
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    419
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 419
    Par d�faut
    Non, �a c'est parce que tu es un d�butant que tu ne ma�trises pas l'installation et l'usage de biblioth�ques sur linux. Ce n'est pas la faute de la lib, ce sera la m�me chose avec toutes. Pour ta culture, l'auteur de la biblioth�que n'est souvent pas responsable du programme d'installation (1 par distro, �crit par un mainteneur de paquet ind�pendant la plupart du temps).
    Je suis d�sol� mais la premi�re des choses � prendre en consid�ration lorsqu'on d�veloppe quelques chose ... l'outil d�velopp� doit �tre facile � utiliser, sinon �a sert � rien de le d�velopper juste pour une certaine cat�gorie qui tres minime (je parle en tant que d�veloppeur sous Windows) !!!

    Tu utilises quel outil pour compiler ?
    mon projet je le compile � l'aide de code::block ! donc le makefile est g�n�r� automatiquement !

  13. #13
    r0d
    r0d est actuellement connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 297
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 297
    Billets dans le blog
    2
    Par d�faut
    Personnellement, tinyxml est une lib tellement petite que quand je l'utilise je copie les fichiers sources (6 dans le pire des cas) directement dans mon propre projet et je les compile avec.

    Sinon, j'ai l'impression que ton probl�me, ralf91, ce ne sont pas les developpeurs de libs qui font mal leur travail, mais plut�t la somme de 2 facteurs: 1. tu ne connais pas l'O.S. sur lequel tu travaille. 2. Tu n'es pas tr�s patient.

    Cordialement.

  14. #14
    Membre �clair� Avatar de ralf91
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    419
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 419
    Par d�faut
    Ben effectivement, je ne connais pas tres bien l'OS et je suis un peu pr�ss�, d'ailleurs c'est pour cela que jai choisi cette lib !

    bon revenons � nos moutons (enfin mes moutons :p) ben j'ai cr�� un projet de type static Library avec code::blocks et j'ai cr�� le fichier .a, je l'ai copi� dans le dossier lib dans usr/lib et j'ai copi� tinyxml.h et tinystr.h dans usr/include

    j'ai compil� mon projet test (pr�sent� dans tuto de developpez.net) qui est le suivant :

    Code : 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
     
    #include "tinyxml.h"
    #include "lireXML.h"
    #include <string>
    #include <iostream>
     
    using namespace std;
     
    void LireXML::lirefichier(string chemin)
    {
        TiXmlDocument doc("carte.xml");
     
        if(!doc.LoadFile())
        {
            cerr << "erreur lors du chargement" << endl;
            cerr << "error #" << doc.ErrorId() << " : " << doc.ErrorDesc() << endl;
        }
        else
            cout<<"Fichier ouvert avec succes !"<<endl;
    }
    maintenant il me semble qu'il reconnait mon :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    #include "tinyxml.h"
    mais il m'affiche une autre erreur :
    obj/Debug/lireXML.o||In function `LireXML::lirefichier(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)': |

    /home/Raf/Documents/testC++/lireFichierXML/MyXMLReader/lireXML.cpp|10|undefined reference to `TiXmlDocument::TiXmlDocument(char const*)'|

    /home/Raf/Documents/testC++/lireFichierXML/MyXMLReader/lireXML.cpp|12|undefined reference to `TiXmlDocument::LoadFile(TiXmlEncoding)'|

    obj/Debug/lireXML.o||In function `TiXmlString::quit()': |

    /usr/include/tinystr.h|241|undefined reference to `TiXmlString::nullrep_'|

    obj/Debug/lireXML.o||In function `~TiXmlDocument': |

    /usr/include/tinyxml.h|1409|undefined reference to `vtable for TiXmlDocument'|

    /usr/include/tinyxml.h|1409|undefined reference to `TiXmlNode::~TiXmlNode()'|
    ||=== Build finished: 5 errors, 0 warnings ===|
    comme s'il n'a pas reconnu le contenu des fichiers !

    Ps : j'ai essay� comme t'as dit r0d, j'ai copi� tous les .h et .cpp dans mon projet et j'ai eu la m�me erreur que tout � l'heure (il reconnait tinyxml.h mais pas le reste !)

  15. #15
    r0d
    r0d est actuellement connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 297
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 297
    Billets dans le blog
    2
    Par d�faut
    Citation Envoy� par ralf91 Voir le message
    Ps : j'ai essay� comme t'as dit r0d, j'ai copi� tous les .h et .cpp dans mon projet et j'ai eu la m�me erreur que tout � l'heure (il reconnait tinyxml.h mais pas le reste !)
    Il faut aussi que tu ajoutes ces fichiers � ton projet dans code::blocks. Sinon ils ne sont pas compil�s.

  16. #16
    Membre �clair� Avatar de ralf91
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    419
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 419
    Par d�faut
    oui j'ai ajout� les 6 fichier dans le dossier de mon projet
    tinystr.cpp tinystr.h tinyxml.cpp tinyxml.h tinyxmlerror.cpp tinyxmlparser.cpp

    et �a ne marche toujours pas, j'ai vu sur un forum un truc d'�dition de lien entre mon projet le fichier .a que j'ai cr�� ?

  17. #17
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par d�faut
    Citation Envoy� par ralf91 Voir le message
    Je suis d�sol� mais la premi�re des choses � prendre en consid�ration lorsqu'on d�veloppe quelques chose ... l'outil d�velopp� doit �tre facile � utiliser, sinon �a sert � rien de le d�velopper juste pour une certaine cat�gorie qui tres minime (je parle en tant que d�veloppeur sous Windows) !!!
    L'outil n'est pas difficile � utiliser : c'est toi qui ne sait pas t'en servir, �a n'a rien � voir. Du reste, les probl�mes d'include et de link sont valables sous windows, tu aurais eu exactement les m�mes ennuis !

    Je pourrais t'aider plus si j'avais mon linux sous la main (pour v�rifier la validit� de mes conseils avant de te les donner), je laisse ceux dont c'est le cas continuer, ou je le ferais de chez moi.

    Edit : Ok j'avais pas vu l'id�e de copier la lib dans ton projet, c'est pas une mauvaise id�e. Il y a effectivement une histoire d'�dition de lien, mais vu que tu compiles tout toi m�me dans un seul exe (arr�te moi si je me trompe), tu ne cr�es pas de *.a. Le link sur un *.a, c'est justement quand tu ne compiles pas toi m�me la lib.

  18. #18
    Membre �clair� Avatar de ralf91
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    419
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 419
    Par d�faut
    ben �a fonctionne enfin ....

    En fait je me prenais la t�te pour rien ! j'ai ajout� les 6 fichiers dans mon projet � l'aide de Code::Blocks du coup il compile mon projet et les 6 fichiers en m�me temps et �a marche !

  19. #19
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par d�faut
    Citation Envoy� par ralf91 Voir le message
    ben �a fonctionne enfin ....

    En fait je me prenais la t�te pour rien ! j'ai ajout� les 6 fichiers dans mon projet � l'aide de Code::Blocks du coup il compile mon projet et les 6 fichiers en m�me temps et �a marche !
    Pas pour rien... le jour o� tu auras besoin d'une lib trop importante pour �tre incluse dans ton projet, tu tomberas sur les m�mes soucis, qu'il faudra r�gler de la vraie bonne mani�re cette fois ci.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Lire des fichiers XML depuis Word
    Par sanandreas1202 dans le forum VBA Word
    R�ponses: 0
    Dernier message: 24/08/2012, 10h01
  2. Probl�me pour lire des fichiers XML avec tFileInputXML- probleme format date
    Par rogermar dans le forum D�veloppement de jobs
    R�ponses: 2
    Dernier message: 06/10/2010, 14h46
  3. [DOM] lire un fichier XML ou il existe des liste
    Par lakerr dans le forum Format d'�change (XML, JSON...)
    R�ponses: 4
    Dernier message: 08/06/2009, 17h57
  4. Lire des fichiers XML
    Par bebel60fr dans le forum XML/XSL et SOAP
    R�ponses: 1
    Dernier message: 01/12/2006, 11h40
  5. [Rech. Comp.] Lire et �crire dans des fichiers XML
    Par Rodrigue dans le forum C++Builder
    R�ponses: 4
    Dernier message: 26/08/2005, 20h48

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