Welcome to CppExpat’s documentation!

class ParserBase
#include <cppexpat.hpp>

The parser base class.

Create a derived version of this class to implement custom callbacks.

Public Functions

void parse(std::istream &f, int sz)

Parse an input stream.

void parse(string s)

Parse a string.

Protected Functions

virtual void start(string name, ElementAttr attr)

Called when an element starts.

virtual void end(string name)

Called when an element ends.

virtual void chardata(string data)

Called when character data is encountered.

virtual void pinstr(string target, string data)

Called for processing instructions.

Private Members

XML_Parser p

Private Static Functions

void start_wrapper(void *userdata, const char *name, const char **attr)
void end_wrapper(void *userdata, const char *name)
void chardata_wrapper(void *userdata, const char *data, int len)
void pinstr_wrapper(void *userdata, const char *target, const char *data)
ElementAttr build_attr(const char **attr)
class XMLError
#include <cppexpat.hpp>

An exception thrown when Expat encounters an error.

Public Functions

XMLError(XML_Parser p)
virtual const char *what() const

Private Members

const string what_

Private Static Functions

static string construct_what(XML_Parser p)
class XMLParser
#include <cppexpat.hpp>

A pre-made XML parser class that takes callback functions.

Public Functions

XMLParser()
void set_start_handler(StartCallback c)

Set the start element handler.

void set_end_handler(EndCallback c)

Set the end element handler.

void set_chardata_handler(ChardataCallback c)

Set the character data handler.

void set_pinstr_handler(PinstrCallback c)

Set the processing instruction handler.

Protected Functions

virtual void start(string name, ElementAttr attr)

Called when an element starts.

virtual void end(string name)

Called when an element ends.

virtual void chardata(string data)

Called when character data is encountered.

virtual void pinstr(string target, string data)

Called for processing instructions.

Private Members

StartCallback startf
EndCallback endf
ChardataCallback chardataf
PinstrCallback pinstrf
namespace cppexpat

Typedefs

typedef using cppexpat::ElementAttr = typedef std::map<string, string>

An alias for an attribute map.

typedef using cppexpat::StartCallback = typedef std::function<void(string,ElementAttr)>
typedef using cppexpat::EndCallback = typedef std::function<void(string)>
typedef using cppexpat::ChardataCallback = typedef std::function<void(string)>
typedef using cppexpat::PinstrCallback = typedef std::function<void(string,string)>

Variables

constexpr unsigned int bufsize
file cppexpat.hpp
#include <functional>#include <exception>#include <istream>#include <expat.h>#include <utility>#include <cstring>#include <sstream>#include <string>#include <memory>#include <map>

Indices and tables