www.pudn.com > QQ2004_Source_0.01.rar > XMLParser.h
// XMLParser.h: interface for the CXMLParser class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_XMLPARSER_H__4E74F8D9_8E8D_4A0B_AD38_8F7F3194350D__INCLUDED_)
#define AFX_XMLPARSER_H__4E74F8D9_8E8D_4A0B_AD38_8F7F3194350D__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "Element.h"
class CElement;
class AFX_EXT_CLASS CXMLParser
{
public:
CXMLParser();
virtual ~CXMLParser();
int LoadXML(BYTE* pBuf, DWORD nSize);
int LoadXML(LPCTSTR pathXML);
int BuildXML();
CString get_version() const {return m_version;}
CString get_xml() const {return m_xml;}
CElement* get_root(){return m_root;}
void set_root(CElement* root){m_root = root;}
int EnumerateElements(LPENUM_CALLBACK_FUNC pFunc);
int FreeTree();
int FreeXML();
CElement *createElement(LPCTSTR tag, LPCTSTR content);
protected:
int m_pos;
CString m_xml;
CString m_version;
CElement* m_root;
int ParseVersion();
int ParseRoot();
int ParseElement(CElement* element);
int ParseAttribute(LPCTSTR tagString, CString &tagName, CMapStringToString &attribute);
int findNextTag(CString &tagName, CString &beforeTag);
int BuildVersion();
int findFirstNotOf(CString &str, LPCTSTR array, int start, int arraySize);
};
#endif // !defined(AFX_XMLPARSER_H__4E74F8D9_8E8D_4A0B_AD38_8F7F3194350D__INCLUDED_)