का उपयोग कर एक्सएमएल को सीरियल करें यह एक नौसिखिया सवाल है। मैं एक्सएमएल में कुछ ऑब्जेक्ट्स को क्रमबद्ध करने की कोशिश कर रहा हूं, लेकिन परिणामी एक्सएमएल में एक बूस्ट सीरियलाइजेशन हस्ताक्षर, संस्करण जानकारी, कक्षा आईडी, आदि शामिल हैं। मुझे जरूरत नहीं है। क्या एक्सएमएल संदेश पोस्ट-प्रोसेसिंग के बिना उनसे छुटकारा पाने का कोई तरीका है?बूस्ट :: serialization
#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;
}
परिणामों में:
<?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>
मैं, तार को ये संदेश serializing जाएगा, हालांकि, और उन्हें प्रणाली है कि संदेश इस तरह देखने के लिए उम्मीद के लिए भेजने से।
<test>
<a>1</a>
<b>2</b>
<c>3.3</c>
</test>
क्या हस्ताक्षर के बिना xml क्रमबद्ध करने का कोई तरीका है?
समाप्त समाप्त आप उत्पादन @navigator चाहता है के प्रकार उत्पन्न करने के लिए Xerces उपयोग का एक उदाहरण के बारे में पता है? – Jeff
आप क्यों कहते हैं कि इच्छित उद्देश्य नहीं है? दस्तावेज़ [आपसे असहमत] (http://www.boost.org/doc/libs/1_60_0/libs/serialization/doc/index.html): «यह लाइब्रेरी दृढ़ता को लागू करने के अलावा अन्य संदर्भों में उपयोगी होगी । सबसे स्पष्ट मामला यह है कि किसी अन्य प्रणाली में संचरण के लिए डेटा को मार्शल करना। '» –