boost::archive::xml_iarchive

Discussion in 'C++' started by Mark, Oct 25, 2012.

  1. Mark

    Mark Guest

    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.
     
    Mark, Oct 25, 2012
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Richard Latter
    Replies:
    2
    Views:
    2,923
    Julie
    May 17, 2004
  2. Steve Knight
    Replies:
    2
    Views:
    797
    Steve Knight
    Oct 10, 2003
  3. Toby Bradshaw
    Replies:
    6
    Views:
    1,798
    Kai-Uwe Bux
    Jun 2, 2006
  4. Colin Caughie
    Replies:
    1
    Views:
    749
    Shooting
    Aug 29, 2006
  5. Replies:
    2
    Views:
    982
Loading...

Share This Page