xml.h
上传用户:liguizhu
上传日期:2015-11-01
资源大小:2422k
文件大小:2k
源码类别:

P2P编程

开发平台:

Visual C++

  1. /*
  2.  *  Openmysee
  3.  *
  4.  *  This program is free software; you can redistribute it and/or modify
  5.  *  it under the terms of the GNU General Public License as published by
  6.  *  the Free Software Foundation; either version 2 of the License, or
  7.  *  (at your option) any later version.
  8.  *
  9.  *  This program is distributed in the hope that it will be useful,
  10.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.  *  GNU General Public License for more details.
  13.  *
  14.  *  You should have received a copy of the GNU General Public License
  15.  *  along with this program; if not, write to the Free Software
  16.  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  17.  *
  18.  */
  19. #ifndef _MARQUISE_CXML_H
  20. #define _MARQUISE_CXML_H
  21. #import <msxml.dll> named_guids/*, rename_namespace("MSXML")*/
  22. #include <stack>
  23. class CXML
  24. {
  25. public:
  26. #ifdef UNICODE
  27. typedef std::wstring mystring;
  28. #else
  29. typedef std::string  mystring;
  30. #endif
  31. //init
  32. BOOL InitXml( );
  33. void unInitXml( );
  34. BOOL OpenXml(const std::string& strdata );
  35. //set node list
  36. long SetNodelist ( LPCTSTR nodename );
  37. long GetNodelistNum (  );
  38. //iterate nodes
  39. BOOL ToSubNodeList(LPCTSTR nodename);
  40. BOOL BackParentNodeList();
  41. BOOL ToNextNode();
  42. BOOL ToNode(long l_index);
  43. BOOL GetCurNodeAttrValue(mystring& strAttrValue, LPCTSTR attrname );
  44. //dash!
  45. LPCTSTR GetNodeValue ( LPCTSTR name );
  46. BOOL GetNodeAttrValue (mystring& strAttrValue, long l_index, LPCTSTR nodename, LPCTSTR attrname );
  47. long  SearchByAttrValue ( LPCTSTR attrname, LPCTSTR attrvalue );
  48. protected:
  49. private:
  50. MSXML::IXMLDOMDocumentPtr m_plDomDocument;
  51. MSXML::IXMLDOMDocumentPtr m_plUrlDomDocument;
  52. MSXML::IXMLDOMElementPtr m_pDocRoot;
  53. MSXML::IXMLDOMNodeListPtr m_pnodelist;
  54. MSXML::IXMLDOMNodePtr m_pcurnode;
  55. long m_len;
  56. std::stack<MSXML::IXMLDOMNodeListPtr> m_nodeliststack;
  57.     std::stack<MSXML::IXMLDOMNodePtr>     m_curnodestack;
  58. };
  59. #endif