⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 htmlparserx.h

📁 HTTP 搜索代码
💻 H
字号:
#pragma once
#include "..\xlibplus\xvector.h"
#include "..\xlibplus\xObjectPool.h"
#include <string>
class CHtmlParserX
{
public:
	class CTagProperty
	{
	public:
		CTagProperty( const char * skey = "", const char * svalue = "" )
		{
			m_sKey = skey;
			m_sValue = svalue;
		}
		~CTagProperty()
		{
		}
		std::string m_sKey;
		std::string m_sValue;
		static CTagProperty * New(){ return m_xTagPropertyPool.newObject();}
		static VOID Delete( CTagProperty * pTagProperty ){ m_xTagPropertyPool.deleteObject( pTagProperty );}
	protected:
		static xUnlimitedObjectPool<CTagProperty> m_xTagPropertyPool;
	};

	class CHtmlTag
	{
	public:
		CHtmlTag()
		{
			m_sName = "";
			m_pParser = NULL;
			m_iContentStart = 0;
			m_iContentEnd = 0;
			m_bClosed = false;
		}
		~CHtmlTag()
		{
			Clear();
		}

		VOID Show();

		BOOL Parse( CHtmlParserX * pParser, char * &pszContent );

		VOID Clear()
		{
			m_sName = "";
			for( int i = 0;i < m_vPropertys.size();i ++ )
			{
				CTagProperty::Delete( m_vPropertys[i] );
			}
			m_vPropertys.clear();
			for( int i = 0;i < m_vChildTags.size();i ++ )
			{
				CHtmlTag::Delete( m_vChildTags[i] );
			}
			m_vChildTags.clear();
			m_iContentStart = 0;
			m_iContentEnd = 0;
			m_pParser = NULL;
			m_bClosed = false;
		}
		std::string GetContent();
	public:
		//std::string m_sFirstText;
		//std::string m_sLastText;
		CHtmlParserX * m_pParser;
		bool m_bClosed;		//	是否封闭,也就是<tagname></tagname>这种形式
		int	m_iContentStart;
		int m_iContentEnd;
		std::string m_sName;
		xVector<CTagProperty*> m_vPropertys;
		xVector<CHtmlTag*> m_vChildTags;
		static CHtmlTag * New(){ return m_xHtmlTagPool.newObject();}
		static VOID Delete( CHtmlTag * pTag ){ m_xHtmlTagPool.deleteObject( pTag );}
	protected:
		static xUnlimitedObjectPool<CHtmlTag> m_xHtmlTagPool;
	};
public:
	CHtmlParserX(void);
	virtual ~CHtmlParserX(void);
	BOOL Parse( std::string & sHtmlContent );
	std::string m_sContent;
	CHtmlTag * m_pHtmlTags;
protected:
};

⌨️ 快捷键说明

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