Sérialiser en XML en utilisant boost :: serialization
C'est une question de newbie. Je suis en train de sérialiser des objets au format XML, mais le XML résultant contient un coup de pouce de la sérialisation de la signature, les informations de version de l'id de classe, ...etc. je n'ai pas besoin. Est-il un moyen de se débarrasser d'eux sans post-traitement du message xml?
#include <fstream>
#include <iostream>
#include <boost/archive/xml_iarchive.hpp>
#include <boost/archive/xml_oarchive.hpp>
using namespace std;
class Test {
private:
friend class boost::serialization::access;
template<class Archive> void serialize(Archive & ar,
const unsigned int version) {
ar & BOOST_SERIALIZATION_NVP(a);
ar & BOOST_SERIALIZATION_NVP(b);
ar & BOOST_SERIALIZATION_NVP(c);
}
int a;
int b;
float c;
public:
inline Test(int a, int b, float c) {
this->a = a;
this->b = b;
this->c = c;
}
};
int main() {
std::ofstream ofs("filename.xml");
Test* test = new Test(1, 2, 3.3);
boost::archive::xml_oarchive oa(ofs);
oa << BOOST_SERIALIZATION_NVP(test);
return 0;
}
résultats dans:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE boost_serialization (View Source for full doctype...)>
<boost_serialization signature="serialization::archive" version="6">
<test class_id="0" tracking_level="1" version="0" object_id="_0">
<a>1</a>
<b>2</b>
<c>3.3</c>
</test>
</boost_serialization>
Je vais être la sérialisation de ces messages à des chaînes, bien que, et de les envoyer à des systèmes qui attendent un message à ressembler à cela.
<test>
<a>1</a>
<b>2</b>
<c>3.3</c>
</test>
Est-il un moyen pour sérialiser xml sans la signature?
source d'informationauteur navigator | 2010-08-11
Vous devez vous connecter pour publier un commentaire.
le drapeau no_header élimine la rubrique lignes
la macro suivante élimine les attributs
Ce n'est pas ce
boost::serialization
doit être utilisé pour. Si vous êtes à la recherche pour générer un type spécifique de XML, est mieux d'utiliser un générateur XML comme Xerces (oui, elle dit "parser" partout, mais il va également écrire du XML).