// file : cxx/tree/basic/driver.cxx // copyright : GNU GPL v2 + exceptions; see accompanying LICENSE file #include #include #include #include #include // Define XSD_CXX11 since we include libxsd headers directly. // #ifdef _MSC_VER # if _MSC_VER >= 1600 // VC++10 and later have C++11 always enabled. # define XSD_CXX11 # endif #else # if defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L # define XSD_CXX11 # endif #endif #include #include // XSD_DOM_AUTO_PTR #include // name() #include // parser, parse() #include // text_content() #include #include // auto_initializer, properties #include // parsing #include using namespace std; using namespace xsd::cxx; // Usage: argv[0] // // Parse the specified XML file using the XML DOM parser and print the element // names and values to stdout. // int main (int argc, char* argv[]) { assert (argc == 2); xml::auto_initializer ai; tree::error_handler h; tree::properties ps; XSD_DOM_AUTO_PTR d ( xml::dom::parse (argv[1], h, ps, 0 /* flags */)); h.throw_if_failed> (); // Abort on error. xml::dom::parser p (*d->getDocumentElement (), true, false, false); for (; p.more_content (); p.next_content (false /* text */)) { const xercesc::DOMElement& i (p.cur_element ()); const xml::qualified_name n (xml::dom::name (i)); cout << n.name () << ' ' << tree::text_content (i) << endl; } }