xmlsupport.h

来自「用bcg库编写的java IDE 源码」· C头文件 代码 · 共 65 行

H
65
字号

#include "editlibExp.h"
struct EDITPADC_CLASS XMLattribute
{
  CString m_strName;
  CString m_strValue;
};

struct EDITPADC_CLASS XMLelement
{
  CString m_strElementName;
  CString m_strElementValue;
  BOOL    m_bAtomic;
  CList<XMLattribute*,XMLattribute*>m_lAttributes;  
  CList<XMLelement*,XMLelement*> m_lNestedElements;
  
  XMLelement()
  {
    m_bAtomic = FALSE;
  }

  ~XMLelement()
  {
     for(POSITION nPos = m_lNestedElements.GetHeadPosition(); nPos !=NULL;)
	        delete m_lNestedElements.GetNext(nPos);
			
     for(nPos = m_lAttributes.GetHeadPosition(); nPos !=NULL;)
	        delete m_lAttributes.GetNext(nPos);			   
  }
};

#define XMLELEMENT_LIST CList<XMLelement*,XMLelement*>


class EDITPADC_CLASS CMiniXMLParser
{
  bool                           m_bAtomicElement;
  CString                        m_strToken;
  int                            m_nIndex;
  int                            m_nBufLength;
  char*                          m_lszpBuf;
  int                            m_nContext;
  CList<XMLelement*,XMLelement*> m_lParsedTree;
public:
   CMiniXMLParser(char* pBuf,int nLength);
   ~CMiniXMLParser();
   
  bool parse();
  XMLELEMENT_LIST* getXmlTree();
protected:
  bool leftTag(XMLelement* pElement);
  bool attributesOpt(XMLelement*pElement);
  bool rightTag();
  bool element(XMLelement* &pParent);
  bool elementRest(XMLelement* pElement);  
  bool attributeName();
  bool tagName();
  bool attributeValue();
  bool stringLiteral();
  bool identfier();
  bool getNextToken();
  bool mainEntryPoint();
  bool getNextTokenImpl();
  bool comment();
};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?