OVH Cloud OVH Cloud

XML en C++ : générer le xml et le parser

101 réponses
Avatar
noone
Bonjour,

je débute en C++ (j'ai fait un peu de C# avant)
L'avantage du C# était de pouvoir sérialiser facilement des objets c'est
à dire les stocker en XML.

Je ne sais pas trop comment m'y prendre en C++.

Quelle librairie utiliser (dans un projet utilisant déjà wxWidgets pour
l'interface graphique) ?

Pour les stocker je fais ceci :

// ===============================

#include <iostream> // pour cout
#include <fstream> // pour ofstream

using namespace std;

class Complexe {
public:
double x;
double y;

void Show()
{
cout << this->x << "+i*" << this->y << endl;
}
};

ostream & operator << (ostream & o,const Complexe & c)
{
return o
<< "<?xml version=\"1.0\"?>" << endl
<< "<Complexe" << " "
<< "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">" << endl
<< "<Re>" << c.x << "</Re>" << endl
<< "<Im>" << c.y << "</Im>" << endl
<< "</Complexe>" << endl;
}


int main()
{
Complexe cplx;
cplx.x=1;
cplx.y=2;

cplx.Show();

ofstream ofs("cplx.xml");

ofs << cplx << endl;
cout << cplx << endl;
}

// ======================


C'est un peu lourd à gérer non ?

Donc en clair avez vous une technique pour générer du xml simplement (et
avec fiabilité) ?

Comment parser ensuite ce fichier XML ?

Merci d'avance de vos réponses.

10 réponses

1 2 3 4 5
Avatar
Cyrille

C'est un peu lourd à gérer non ?

Donc en clair avez vous une technique pour générer du xml simplement (et
avec fiabilité) ?

Comment parser ensuite ce fichier XML ?

Merci d'avance de vos réponses.


Jette un oeil sur www.boost.org et la librairie de serialisation:
http://www.boost.org/libs/serialization/doc/index.html
... qui gère le XML.

Avatar
noone


Jette un oeil sur www.boost.org et la librairie de serialisation:
http://www.boost.org/libs/serialization/doc/index.html
... qui gère le XML.


sur fr.comp.text.tex
on m'a envoyé vers gsoap
http://www.cs.fsu.edu/~engelen/soap.html
http://gsoap2.sourceforge.net/

Connaissez-vous cette librairie ?

Merci pour le lien vers boost

Avatar
noone



Jette un oeil sur www.boost.org et la librairie de serialisation:
http://www.boost.org/libs/serialization/doc/index.html
... qui gère le XML.



sur fr.comp.text.tex
on m'a envoyé vers gsoap
http://www.cs.fsu.edu/~engelen/soap.html
http://gsoap2.sourceforge.net/

Connaissez-vous cette librairie ?

Merci pour le lien vers boost


je voulais dire fr.comp.text.xml ... ;-) désolé pour le bruit
sur fr.comp.text.tex


Avatar
noone
Je viens également de voir cette librairie
http://www.gnu.org/software/commoncpp/
"XML parsing, serialization"

en fait ce que je recherche c'est quelque chose de simple...
une librairie dont on sait quelle sera maintenue, etc...
avec plutôt une licence libre.
Avatar
drkm
"" writes:

[...]

C'est le troisième groupe sur lequel je vois ton article. Notamment
sur f.c.t.tex ! S'il te plaît, dans ces cas, choisis bien tes groupes
(f.c.l.c++ et f.c.t.xml étaient pertinants). Et *cross-poste*, ne
multi-poste jamais.

--drkm
Avatar
M. B.
a écrit dans le message de
news:41da965f$0$3514$
Bonjour,

je débute en C++ (j'ai fait un peu de C# avant)
L'avantage du C# était de pouvoir sérialiser facilement des objets c'est
à dire les stocker en XML.

Je ne sais pas trop comment m'y prendre en C++.
...


Bonjour.

Pourquoi ne pas rester en C#/.NET puisque tout est prevu pour
la serialisation XML et pour bien d'autres choses d'ailleurs ?

La portabilite ?

MB

Avatar
Arnaud Debaene
wrote:
Bonjour,

je débute en C++ (j'ai fait un peu de C# avant)
L'avantage du C# était de pouvoir sérialiser facilement des objets
c'est à dire les stocker en XML.

Je ne sais pas trop comment m'y prendre en C++.


C'est l'un des gros manques du C++ AMHA : la sérialisation des objets... :-(

Au fait, est ce que quelqu'un saurait s'il y aurait des travaux concernant
ce sujet , voire même des propositions plus formelles pour la prochaine
mouture de la norme?

Arnaud

Avatar
Loïc Joly
Arnaud Debaene wrote:
wrote:

Bonjour,

je débute en C++ (j'ai fait un peu de C# avant)
L'avantage du C# était de pouvoir sérialiser facilement des objets
c'est à dire les stocker en XML.

Je ne sais pas trop comment m'y prendre en C++.



C'est l'un des gros manques du C++ AMHA : la sérialisation des objets... :-(


En fait, je dirais que le manque est plus du côté de l'introspection,
qui permettrait de faire une sérialisation "par défaut" automatique des
objets, mais d'autres choses aussi.


Au fait, est ce que quelqu'un saurait s'il y aurait des travaux concernant
ce sujet , voire même des propositions plus formelles pour la prochaine
mouture de la norme?


J'ai aperçu des débuts de trucs, mais qui partaient plus sur une
approche de "compilation" vers un format interrogeable depuis le programme.

--
Loïc


Avatar
drkm
Loïc Joly writes:

J'ai aperçu des débuts de trucs, mais qui partaient plus sur une
approche de "compilation" vers un format interrogeable depuis le
programme.


Dans quel sens entends-tu « compilation », ici ? J'ai du mal à
entrevoir ce à quoi tu penses.

--drkm

Avatar
noone
"" writes:

[...]

C'est le troisième groupe sur lequel je vois ton article. Notamment
sur f.c.t.tex ! S'il te plaît, dans ces cas, choisis bien tes groupes
(f.c.l.c++ et f.c.t.xml étaient pertinants). Et *cross-poste*, ne
multi-poste jamais.

--drkm


c'est qu'on a les même centres d'intérêt ;-)

PS : je me d'ailleurs suis excusé pour cette erreur


je voulais dire fr.comp.text.xml ... ;-) désolé pour le bruit
sur fr.comp.text.tex




1 2 3 4 5