aboutsummaryrefslogtreecommitdiff
path: root/Src/xml/XMLDOM.h
blob: df4a1abc1376015981c93dc0cca6ca85b8a479bd (plain) (blame)
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
#pragma once
#include "../xml/ifc_xmlreadercallback.h"
#include "XMLNode.h"
#include "../nu/Alias.h"

class XMLDOM : public ifc_xmlreadercallback
{
public:
	XMLDOM();
	~XMLDOM();

	const XMLNode *GetRoot() const;

private:
	void StartTag(const wchar_t *xmlpath, const wchar_t *xmltag, ifc_xmlreaderparams *params);
	void EndTag(const wchar_t *xmlpath, const wchar_t *xmltag);
	void TextHandler(const wchar_t *xmlpath, const wchar_t *xmltag, const wchar_t *str);

private:
	wchar_t *curtext;
	size_t curtext_len; // number of characters in curtext, not including null terminator
	XMLNode *xmlNode;
	XMLNode *curNode;

protected:
	RECVS_DISPATCH;
};