htmlcxx
是C++
中解析html
格式数据的第三方库,这个库的特点就是快捷、轻量级。最近在使用的时候在解析html的时候,总有搜索标签的需求,所以自己封装了一个工具。
1、HtmlCxxUtils.h
头文件
/**
* HtmlCxxUtils类定义
*
* @author hestyle
* @version 1.0.0
*/
#ifndef _HTMLCXX_UTILS_
#define _HTMLCXX_UTILS_
#include "htmlcxx/include/ParserDom.h"
//导入htmlcxx.lib,请修改为你自己的路径
#pragma comment(lib,"htmlcxx/lib/htmlcxx.lib")
using namespace std;
using namespace htmlcxx;
class HtmlCxxUtils{
public:
HtmlCxxUtils();
~HtmlCxxUtils();
/*
* 在[beginIt,endIt)寻找第index个名为tagName的标签
* @param beginIt 搜索起始迭代器
* @param endIt 搜索尾端迭代器
* @param tagName 需要搜索标签名
* @param index 符合搜索条件的第index个(默认是第1个)
*/
static tree<HTML::Node>::iterator selectTag(tree<HTML::Node>::iterator& beginIt, tree<HTML::Node>::iterator& endIt,
string tagName, int index = 1);
/*
* 在[beginIt,endIt)寻找第index个名为tagName的标签,并且该标签中含有名为attrName的属性、属性值为attrValue
* @param beginIt 搜索起始迭代器
* @param endIt 搜索尾端迭代器
* @param tagName 需要搜索标签名
* @param attrName 标签含有的属性名
* @param attrValue 标签含有的attrName属性的值
* @param index 符合搜索条件的第index个(默认是第1个)
*/
static tree<HTML::Node>::iterator selectTag(tree<HTML::Node>::iterator& beginIt, tree<HTML::Node>::iterator& endIt,
string tagName, string attrName, string attrValue, int index = 1);
};
#endif // !_HTMLCXX_UTILS_
2、HtmlCxxUtils.cpp
类文件
/**
* HtmlCxxUtils类方法实现
*
* @author hestyle
* @version 1.0.0
*/
#include <