blob: cc593a3c4f6ddfdb4b06532dc3b0c8c27c596752 (
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
|
#ifndef XML_HPP_INCLUDED
#define XML_HPP_INCLUDED
// Standard C++
#include <iostream>
#include <string>
#include <vector>
class XML {
public:
void parse(std::istream& in);
protected:
virtual void handle_start(const std::string& name, const std::vector<std::pair<std::string, std::string>>& attr) = 0;
virtual void handle_end(const std::string& name) = 0;
virtual void handle_cdata_start() {}
virtual void handle_cdata_end() {}
virtual void handle_data(const std::vector<char>&) {}
private:
static void tag_start(void* me, const char* name, const char* attr[]);
static void tag_end(void* me, const char* name);
static void cdata_start(void* me);
static void cdata_end(void* me);
static void data(void* me, const char* dat, int len);
};
#endif
|