blob: 57ad6f20e40e712d8e89a860b6cc144374fd73b5 [file] [log] [blame]
// Copyright (c) 2005 Carl Barron. Distributed under the Boost
// Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#include "xml_g.hpp"
#include <boost/spirit/include/classic_utility.hpp>
#include <iostream>
namespace std
{
std::ostream & operator << (std::ostream &os,std::pair<std::string,std::string> const &p)
{
return os << p.first << '=' << p.second;
}
std::ostream & operator << (std::ostream &os,const tag &t)
{
return os << t.id;
}
}
int main()
{
const char *test =
// "<A x=\"1\" y=\"2\"> test 1 </A>"
// "<B x=\"3\" y= \"4\" z = \"10\"> test 3 </B>"
// "<C><A></A><V><W></W></V></C>"
// "<D x=\"4\"/>"
"<E>xxx<F>yyy</F>zzz</E>"
;
std::list<tag> tags;
xml_g g(tags);
if(SP::parse(test,g,SP::comment_p("<---","--->")).full)
{
std::for_each(tags.begin(),tags.end(),walk_data());
}
else
{
std::cout << "parse failed\n";
}
}