blob: d2789a700317d9ca22f4ade13d641a535ddecaf9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
// file : examples/hybrid/driver.cxx
// copyright : not copyrighted - public domain
#include <fstream>
#include <iostream>
#include <libstudxml/parser.hxx>
#include <libstudxml/serializer.hxx>
#include "dom.hxx"
using namespace std;
using namespace xml;
int
main (int argc, char* argv[])
{
if (argc != 2)
{
cerr << "usage: " << argv[0] << " <xml-file>" << endl;
return 1;
}
try
{
// Parse the input document and construct an in-memory, DOM-like
// raw XML representation for each object element. Also serialize
// the data back to XML as we parse.
//
ifstream ifs (argv[1]);
parser p (ifs, argv[1]);
serializer s (cout, "output");
p.next_expect (parser::start_element, "objects", content::complex);
s.start_element ("objects");
while (p.peek () == parser::start_element)
{
element e (p);
e.serialize (s);
}
p.next_expect (parser::end_element); // objects
s.end_element ();
}
catch (const xml::exception& e)
{
cerr << e.what () << endl;
return 1;
}
}
|