![]() |
boost::archive::xml_iarchive
Given:
#include <iostream> #include <fstream> #include <vector> #include <string> # include <sstream> // Boost #include <boost/scoped_ptr.hpp> #include <boost/shared_ptr.hpp> #include <boost/archive/xml_oarchive.hpp> #include <boost/archive/xml_iarchive.hpp> #include <boost/serialization/string.hpp> #include <boost/serialization/vector.hpp> #include <boost/serialization/scoped_ptr.hpp> #include <boost/serialization/shared_ptr.hpp> #include <boost/serialization/export.hpp> #include <boost/serialization/nvp.hpp> int main(int argc, char* argv[]) { try { std::ifstream file("test.xml" ); if ( !file ) { return EXIT_FAILURE ; } std::string str ( ( std::istreambuf_iterator<char> ( file ) ), std::istreambuf_iterator<char>() ); std::cout << str << std::endl; std::istringstream iss ( str ) ; boost::archive::xml_iarchive ia( iss ); } catch ( const boost::archive::archive_exception& e ) { std::cout << e.what() << std::endl; } } The contents of test.xml is as follows: <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <boost_serialization signature="serialization::archive" version="3"> <s class_id="0" tracking_level="0" version="1"> <attrs class_id="1" tracking_level="0" version="0"> <count>2</count> <item class_id="2" tracking_level="0" version="0"> <first>a</first> <second>abcde</second> </item> <item> <first>b</first> <second>badfaf</second> </item> </attrs> </s> </boost_serialization> When I run the code I get 'unrecognized XML syntax' which is puzzling given the XML is well-formed at least according to XML spy. boost::archive::xml_iarchive ia( file); Produce the same result. It's not clear to me what the issue ('unrecognized XML syntax doesn't tell me a whole lot) or fix is. |
| All times are GMT. The time now is 04:29 AM. |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.