C++ 使用Htmlcxx解析Html內容(VS編譯庫文件)


1.下載Htmlcxx,http://sourceforge.net/projects/htmlcxx/

2.解壓htmlcxx-0.85.tar.gz

3.打開htmlcxx.vcproj,注意是htmlcxx.vcproj,不是下面的htmlcxxapp.vcproj

4.使用VS打開htmlcxx.vcproj,需要對項目進行轉換

5.選擇編譯模式:Debug或Release模式,具體由需要使用到Htmlcxx庫文件的項目的編譯模式決定,但注意Debug對Debug,Release對Release,不要混亂

6.右擊htmlcxx,選擇屬性,可以看到運行庫默認的是”多線程調試/MTD“:

7.具體選擇運行庫時,由由需要使用到Htmlcxx庫文件的項目的運行庫決定,由於本人項目使用的是”多線程調試 DLL (/MDd)“,故選擇”多線程調試 DLL (/MDd)“進行編譯

8.報錯:

9.排錯:

改成

10.在所開發項目文件夾中,新建”htmlcxx“文件,里面添加兩個子文件夾”lib“和”include“

11.將編譯好的htmlcxx.lib(Debug或者Release,由htmlcxx編譯模式決定)拷貝到lib文件夾,將html文件夾中所有的.h頭文件和ParserSax.tcc添加到include文件夾

12.選擇所開發項目的項目屬性,添加庫文件htmlcxx.lib到項目中(VC++目錄下的庫目錄中添加htmlcxx.lib路徑即可)

13.所開發的項目的頭文件中添加以下內容:

#include <string>
#include "htmlcxx/include/ParserDom.h"

using namespace std;
using namespace htmlcxx;

#pragma comment(lib,"htmlcxx.lib")

14.具體使用代碼:

void NuistMoney::GetLogWeekTxt()
{
	if (logined==true)
	{
		logWidget->clear();
		lbmessage->setText(tr("正在查詢本周消費,請稍候..."));
		QString data=GetToAllNet(tr("http://www.**************.com.cn"));
		string html=data.toStdString();
		HTML::ParserDom parser;
		tree<HTML::Node> dom = parser.parseTree(html);
		tree<HTML::Node>::iterator it ;	
		tree<HTML::Node>::iterator end;

		//輸出所有的文本節點
		it= dom.begin();
		end= dom.end();
		QString str;
		QString str1;
		QString str2;
		for(; it != end; ++it)
		{
			if (strcasecmp(it->tagName().c_str(), "td") == 0)//首先判斷是否是td字段
			{
				it+=1;//如果是td字段,則讀取下一個字段的值,<td>字段1</td><td>字段2</td>,獲取字段2
				if ((!it->isTag()) && (!it->isComment()))
				{
					if (it->text()!=" ")
					{
						str1=QString::fromStdString(it->text()).trimmed();
					}					
				}
				if (str1==tr("交易金額")||str1==tr("卡余額"))
				{
					it+=5;
				}
				else
				{
					it+=3;
				}
				str2=QString::fromStdString(it->text()).trimmed();
				str=tr("\t")+str1+tr("\t\t")+str2;
				logWidget->addItem(str);
			}
			if (str1==tr("卡余額"))
			{
				logWidget->addItem(tr(" "));
				str1.clear();
			}
		}
	}
	else
	{
		lbmessage->setText(tr("您未登陸,請您先登陸..."));
	}	
}

 附上htmlcxx學習資料:http://blog.csdn.net/youfangyuan/article/details/7816518


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM