htmlparser.h
来自「Visual C++ 网络通信编程实用案例精选 的配套光盘」· C头文件 代码 · 共 61 行
H
61 行
/*
<tag[blank+]|
Repeating groups of:
[blank*]opt[blank*]=|
[blank*]["]value["][blank*]|
>
*/
#if !defined(__Parser_h__)
#define __Parser_h__
class COptions
{
private:
CString m_strParm;
CString m_strValue;
int m_nIndex;
public:
void SetParm(LPCTSTR lpszTag) { m_strParm = lpszTag; }
void SetValue(LPCTSTR lpszValue) { m_strValue = lpszValue; }
void SetIndex(int nIndex) { m_nIndex = nIndex; }
LPCTSTR GetParm() { return m_strParm; }
LPCTSTR GetValue() { return m_strValue; }
int GetIndex() { return m_nIndex; }
};
typedef CArray<COptions,COptions&> HTML_ARGS;
class CHtmlParser
{
protected:
CString m_strTag;
HTML_ARGS m_arrOptions;
char *m_pRawBuffer;
protected:
BOOL FindToken(const char *pTokens, const char *pBuffer, int& nIndex,
int nMaxLen);
CString GetString(const char *pTerminals, const char *pBuffer, int &nIndex,
int nMaxLen);
CString SaveParm(const CString& strParm, BOOL bLowercase);
void GetOptions(const char *pBuffer, int &nIndex, int nMaxLen);
BOOL GetTag(const char *pBuffer, int& nIndex, int nMaxLen);
public:
CHtmlParser();
virtual ~CHtmlParser();
public:
void ParseText(char *pBuffer, int nMaxLen);
virtual BOOL ProcessTag(const CString& strTag, int nIndex, const HTML_ARGS& arrOptions);
virtual BOOL WantTag(const CString& strTag);
};
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?