XMLParser.h
上传用户:hysujiao87
上传日期:2007-12-02
资源大小:156k
文件大小:1k
源码类别:

ICQ/即时通讯

开发平台:

C/C++

  1. // XMLParser.h: interface for the CXMLParser class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_XMLPARSER_H__4E74F8D9_8E8D_4A0B_AD38_8F7F3194350D__INCLUDED_)
  5. #define AFX_XMLPARSER_H__4E74F8D9_8E8D_4A0B_AD38_8F7F3194350D__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "Element.h"
  10. class CElement;
  11. class AFX_EXT_CLASS CXMLParser  
  12. {
  13. public:
  14. CXMLParser();
  15. virtual ~CXMLParser();
  16. int LoadXML(BYTE* pBuf, DWORD nSize);
  17. int LoadXML(LPCTSTR pathXML);
  18. int BuildXML();
  19. CString get_version() const {return m_version;}
  20. CString get_xml() const {return m_xml;}
  21. CElement* get_root(){return m_root;}
  22. void set_root(CElement* root){m_root = root;}
  23. int EnumerateElements(LPENUM_CALLBACK_FUNC pFunc);
  24. int FreeTree();
  25. int FreeXML();
  26. CElement *createElement(LPCTSTR tag, LPCTSTR content);
  27. protected:
  28. int m_pos;
  29. CString m_xml;
  30. CString m_version;
  31. CElement* m_root;
  32. int ParseVersion();
  33. int ParseRoot();
  34. int ParseElement(CElement* element);
  35. int ParseAttribute(LPCTSTR tagString, CString &tagName, CMapStringToString &attribute);
  36. int findNextTag(CString &tagName, CString &beforeTag);
  37. int BuildVersion();
  38. int findFirstNotOf(CString &str, LPCTSTR array, int start, int arraySize);
  39. };
  40. #endif // !defined(AFX_XMLPARSER_H__4E74F8D9_8E8D_4A0B_AD38_8F7F3194350D__INCLUDED_)