diff options
| author | André Nusser <andre.nusser@googlemail.com> | 2016-03-23 18:24:29 +0100 | 
|---|---|---|
| committer | André Nusser <andre.nusser@googlemail.com> | 2016-03-29 22:19:49 +0200 | 
| commit | 8c585aa006741b95c1175afcdb01cdd3d8d2d7db (patch) | |
| tree | 66c482877189c0d63708caffa0e614caf1b8f228 /src/saxparser.h | |
| parent | 01e216f82e24e7668a892e5a912ccbf1369ae255 (diff) | |
Do the file related actions in SAXParser.
Diffstat (limited to 'src/saxparser.h')
| -rw-r--r-- | src/saxparser.h | 12 | 
1 files changed, 6 insertions, 6 deletions
| diff --git a/src/saxparser.h b/src/saxparser.h index c43f00a..b4d9823 100644 --- a/src/saxparser.h +++ b/src/saxparser.h @@ -29,17 +29,18 @@  #include <string>  #include <map>  #include <expat.h> +#include <fstream>  class SAXParser {  public:  	SAXParser();  	virtual ~SAXParser(); -	//! Parses the data obtained by readData in chunks. -	int parse(); +	//! Parses the data from the file. +	virtual int parseFile(const std::string& filename);  	//! Parses all the data in the buffer. -	int parse(const std::string& buffer); +	virtual int parseString(const std::string& str, const std::string& xml_source_name = "");  protected:  	using attr_t = std::map<std::string, std::string>; @@ -47,12 +48,11 @@ protected:  	virtual void characterData(const std::string& data) {}  	virtual void startTag(const std::string& name, const attr_t& attr) {}  	virtual void endTag(const std::string& name) {} -	virtual void parseError(const std::string& buf, std::size_t len, const std::string& error, std::size_t lineno); - -	virtual int readData(std::string& data, std::size_t size) { return 0; } +	virtual void parseError(const std::string& buf, const std::string& error, const std::string& xml_source_name, std::size_t lineno);  private:  	XML_Parser p; +	std::string filename;  	static void character_hndl(void* p, const XML_Char* s, int len);  	static void start_hndl(void* p, const char* el, const char** attr); | 
