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

posted @ 2015-04-23 21:08  striver_zhu  阅读(10269)  评论(0编辑  收藏  举报