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 :

Dev C++ et XML


Sujet :

Bibliothèques

  1. #1
    Membre éclairé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Points : 884
    Points
    884
    Par défaut Dev C++ et XML
    Bonjour a tous !

    Je dois faire un travail sur le XML et je dois commenter un petit programme en C++ qui utilise le XML ! (je ne sais pas si c'est possible)

    Je ne dois pas réaliser un travail ou un projet en C++ mais uniquement montrer comment peut s'utiliser le XML avec du C++ !

    J'ai uniquement les bases en C++ et je travaille avec dev C++ ! Donc si vous avez un exemple a me proposer je suis preneur ! (ou à m'expliquer)

    (je pensais a un petit morceau de code qui écrirait dans un fichier XML vraiment tout simple) !

    Merci de vos réponses !
    Les cours: XHTML, CSS, PHP, Flash et Javascript
    Expliquez votre problème clairement et pensez à remercier ceux qui vous ont aidé.
    N'oubliez pas : Le tag résolu est la meilleure des satisfactions sur developpez.com
    Aucune question technique par MP.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Points : 574
    Points
    574
    Par défaut
    Il y a des librairies comme MSXML qui permettent de travailler avec du XML.
    Je pense que le but de ton projet est de lire du XML et d'écrire du XML ?
    Pour faire cela, il faut connaitre les éléments de base XML : element, attribut, namespace, ...
    Tu as aussi Xerces.
    Si tu es amené à travailler sur la librairie MSXML, je pourrai te donner un coup de main.

  3. #3
    Membre averti Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Points : 352
    Points
    352
    Par défaut
    Salut,

    Tu peux tout a fait utiliser XML avec du C++, il te suffit de telecharger des librairie XML sur le net.

    tu peux essayer SAX :
    - http://www.jezuk.co.uk/cgi-bin/view/arabica

    Par contre si tu veut juste ecrire des fichiers XML avec ton programme (et non lire des fichiers XML) dans ce cas tu n'as besoin de rien. Utilise juste la librarie standard iostream pour aller ecrire ton fichier dans le format XML que tu auras defini.

    XXiemeciel
    XXiemeciel

  4. #4
    Membre éclairé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Points : 884
    Points
    884
    Par défaut
    okay je pensais simplement écrire dans un fichier XML et le lire par la suite avec une autre application...

    Je vais regarder pour écrire dans un fichier...

    Je vais aussi essayer les librairies SAX (bon ca ressemble a du JAVA) !

    Merci pour le lien !!!
    Les cours: XHTML, CSS, PHP, Flash et Javascript
    Expliquez votre problème clairement et pensez à remercier ceux qui vous ont aidé.
    N'oubliez pas : Le tag résolu est la meilleure des satisfactions sur developpez.com
    Aucune question technique par MP.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 109
    Points : 68
    Points
    68
    Par défaut
    voilà une version un peu plus allegé de ce que je t'ai envoyé en privé.

    ça affiche les valeurs d'un tableau dans un fichier puis ça le lit dans la console...
    ups...faudra verifier AREVI n'a rien a voir là dedans...je sais plus ce qu'il faut include dans ce cas mais ça doit etre facile à trouver

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    #include "AReVi/arSystem.h"
    using namespace AReVi;
     
    #include "AReVi/Contrib/xmlParser.h"
     
    struct point
    {int x;
    int y;int z;};
     
    ArRef<Scheduler>
    simulationInit(void)
    {
     
    ///POUR ECRIRE
     
    //cerr << "Crée un nouveau document" << endl;
    ArRef<XmlFlowOut> flow=new_XmlFlowOut("nouveau.xml");//crée nouveau ou supprime l'existant
    ArRef<XmlNode> root1=flow->getRoot();
     
    //cerr << "Creé noeud Configuration" << endl;
    ArRef<XmlNode> node=root1->addChild("Parking");
    ArRef<XmlNode> Attribute=node->addChild("Attribute");
    Attribute->setPropertyString("name","typeVehicule");
    Attribute->setPropertyString("value","Rafale");
     
    for(int i=0;i<5;i++)//5=nombre places
    {
    ArRef<XmlNode> Relation=node->addChild("Relation");
    Relation->setPropertyString("name","place");
    Relation->setPropertyString("value","Place1");//nom de la place
    }
     
    point  _vectPlacesParkAv[5];
    _vectPlacesParkAv[0].x=1;
    _vectPlacesParkAv[0].y=10;
    _vectPlacesParkAv[1].x=15;
    _vectPlacesParkAv[1].y=1;
    _vectPlacesParkAv[2].x=17;
    _vectPlacesParkAv[2].y=15;
    _vectPlacesParkAv[3].x=19;
    _vectPlacesParkAv[3].y=16;
    _vectPlacesParkAv[4].x=1;
    _vectPlacesParkAv[4].y=18;
    for (int i=0; i<5;i++)
    {
     
    ArRef<XmlNode> Entity=node->addChild("Entity");
    Entity->setPropertyString("class","yuyu");
    Entity->setPropertyString("name","yaya");//nom place
     
    ArRef<XmlNode> Location=Entity->addChild("Location");
    Location->setPropertyInteger("x",_vectPlacesParkAv[i].x);
    Location->setPropertyInteger("y",_vectPlacesParkAv[i].y);
    Location->setPropertyInteger("z",_vectPlacesParkAv[i].z);
    ArRef<XmlNode> Orientation=Entity->addChild("Orientation");
    Orientation->setPropertyInteger("roll",0);
    Orientation->setPropertyInteger("pitch",0);
    Orientation->setPropertyInteger("yaw",3);//mettre yaw!
    }
     
    //Ne as oublier (pour jetter dans le flux)!!!!!!!
    flow->addXmlNode(node,0,"");
    /POUR LIRE
    string _nom="nom";int _x,_y,_yaw; 
    //creer un parseur et un noeud
      ArRef<XmlParser> parser=new_XmlParser();
      ArRef<XmlNode> root;
    //charge le fichier XML et fixe le parseur au début
      if (!parser->parseFile("nouveau.xml",true))
      {
        cerr << "erreur en chargeant .xml" << endl;
        return Scheduler::nullRef();
      }
     
    //place le noeud a la premiere balise
      root=parser->getRoot();
    for (int i=1; i<=5;i++)//!!attention
    {
     
    ArRef<XmlNode> EntityPlace=root->getChild("Entity",i);
     
    ArRef<XmlNode> locationPlace=EntityPlace->getChild("Location",1);
    ArRef<XmlNode> orientationPlace=EntityPlace->getChild("Orientation",1);
    EntityPlace->getPropertyString("name",_nom);
    locationPlace->getPropertyInteger("x",_x);
    locationPlace->getPropertyInteger("y",_y);
    orientationPlace->getPropertyInteger("yaw",_yaw);
    cout<<"nom "<<_nom<<" x "<<_x<<" y "<<_y<<" yaw "<<_yaw<<endl;
     
    }
     
    return(Scheduler::nullRef());
     
     
    }
     
    int
    main(int argc,
         char ** argv)
    {
    ArSystem arevi(argc,argv,false);
    ArSystem::loadPlugin("XmlParser");
    ArSystem::simulationLoop(&simulationInit);
    return(0);
    }
    J'espère que ça pourra t'aider
    J'ai pas mal galeré quand j'ai voulu le faire.
    biz

  6. #6
    Membre averti Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Points : 352
    Points
    352
    Par défaut
    Juste une petite precision

    Le parser permet de lire tes balises et le contenu de ton fichier XML

    pour ecrire ton fichier XML tu dois juste definir les balises que tu va avoir besoin pour ton format et ensuite tu as juste a utiliser iostream pour creer ton fichier a ta guise.

    XXiemeciel
    XXiemeciel

  7. #7
    Membre éclairé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Points : 884
    Points
    884
    Par défaut
    oui j'ai vu que les includes apportaient des erreurs en le compilant ! Alors je vais voir comment il y remedier et insérer les bons include() !

    (le premier que tu m'as envoyer en pv, il était pas facile a tout comprendre mais ca allait)

    Merci pour vos infos !
    Les cours: XHTML, CSS, PHP, Flash et Javascript
    Expliquez votre problème clairement et pensez à remercier ceux qui vous ont aidé.
    N'oubliez pas : Le tag résolu est la meilleure des satisfactions sur developpez.com
    Aucune question technique par MP.

  8. #8
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Salut
    tu as aussi TinyXML qui n'est pas mal du tout
    En principe tu as des exemples livrés, avec une belle doc ici :
    http://www.grinninglizard.com/tinyxmldocs/index.html

    Voilà, bonne soirée

  9. #9
    tut
    tut est déconnecté
    Membre averti
    Avatar de tut
    Inscrit en
    Juillet 2002
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 373
    Points : 394
    Points
    394
    Par défaut
    je confirme, TinyXML fonctionne bien et est très simple d'utilisation.
    Si tu veux faire une utilisation basique d'XML (pas de validation de document par exemple), TinyXML est adapté.

  10. #10
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    svp svp vous devez m'aider ... jai essayé de travailler avec tinyxml jai inclus tout les .h dans le fichier include de mon compilateur (code::bloks) ainsi les .a
    (http://khayyam.developpez.com/articles/cpp/tinyxml/#LI)
    mais lorsque je compile ca donne ces erreures...


    [Linker error] undefined reference to `TiXmlDocument::TiXmlDocument (charconst*)'
    [Linker error] undefined reference to `vtable for TiXmlDocument'
    [Linker error] undefined reference to `TiXmlNode::~TiXmlNode()'
    [Linker error] undefined reference to `TiXmlNode::~TiXmlNode()'


    merci d'avance.....

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/12/2009, 11h23
  2. Dev C++ et XML
    Par Dsphinx dans le forum XML
    Réponses: 4
    Dernier message: 21/11/2005, 16h50
  3. Dev-C++
    Par Anonymous dans le forum Dev-C++
    Réponses: 16
    Dernier message: 21/09/2002, 13h06
  4. Débutant XML
    Par viny dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 25/07/2002, 12h07

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