13 Star 69 Fork 22

johnsonyl/cpps

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
cpps_htmlparser_element.cpp 3.22 KB
一键复制 编辑 原始数据 按行查看 历史
johnsonyl 提交于 2021-01-28 22:30 +08:00 . 2021-01-28 更新2
#include "cpps_htmlparser_element.h"
namespace cpps
{
cpps_htmlparser_element::cpps_htmlparser_element()
{
}
cpps_htmlparser_element::~cpps_htmlparser_element()
{
}
std::string cpps_htmlparser_element::attr(std::string k)
{
return element->GetAttribute(k);
}
cpps::cpps_value cpps_htmlparser_element::children(C *c,std::string k)
{
std::shared_ptr<HtmlElement> ele = element->GetElementById(k);
if (!ele) return nil;
cpps_htmlparser_element* ret_ele;
cpps_value ret;
newclass<cpps_htmlparser_element>(c, &ret_ele,&ret);
ret_ele->element = ele;
return ret;
}
cpps::cpps_value cpps_htmlparser_element::childrens_by_classname(C* c, std::string k)
{
std::vector<std::shared_ptr<HtmlElement>> eles;
element->GetElementByClassName(k,eles);
cpps_vector* ret_vct;
cpps_value ret;
newclass< cpps_vector>(c, &ret_vct,&ret);
for (auto& ele : eles) {
cpps_htmlparser_element* ret_ele;
cpps_value ele_val;
newclass<cpps_htmlparser_element>(c, &ret_ele,&ele_val);
ret_ele->element = ele;
ret_vct->push_back(ele_val);
}
return ret;
}
cpps::cpps_value cpps_htmlparser_element::childrens_by_tagname(C* c, std::string k)
{
std::vector<std::shared_ptr<HtmlElement>> eles;
element->GetElementByTagName(k, eles);
cpps_vector* ret_vct;
cpps_value ret;
newclass< cpps_vector>(c, &ret_vct,&ret);
for (auto& ele : eles) {
cpps_htmlparser_element* ret_ele;
cpps_value ele_val;
newclass<cpps_htmlparser_element>(c, &ret_ele,&ele_val);
ret_ele->element = ele;
ret_vct->push_back(ele_val);
}
return ret;
}
cpps::cpps_value cpps_htmlparser_element::childrens(C* c)
{
std::vector<std::shared_ptr<HtmlElement>> eles;
element->GetAllElement(eles);
cpps_vector* ret_vct;
cpps_value ret;
newclass< cpps_vector>(c, &ret_vct,&ret);
for (auto& ele : eles) {
cpps_htmlparser_element* ret_ele;
cpps_value ele_val;
newclass<cpps_htmlparser_element>(c, &ret_ele,&ele_val);
ret_ele->element = ele;
ret_vct->push_back(ele_val);
}
return ret;
}
cpps::cpps_value cpps_htmlparser_element::select(C* c, std::string rule)
{
std::vector<std::shared_ptr<HtmlElement>> eles;
element->SelectElement(rule,eles);
cpps_vector* ret_vct;
cpps_value ret;
newclass< cpps_vector>(c, &ret_vct,&ret);
for (auto& ele : eles) {
cpps_htmlparser_element* ret_ele;
cpps_value ele_val;
newclass<cpps_htmlparser_element>(c, &ret_ele,&ele_val);
ret_ele->element = ele;
ret_vct->push_back(ele_val);
}
return ret;
}
cpps::cpps_value cpps_htmlparser_element::parent(C* c)
{
std::shared_ptr<HtmlElement> ele = element->GetParent();
if (!ele) return nil;
cpps_htmlparser_element* ret_ele;
cpps_value ret;
newclass<cpps_htmlparser_element>(c, &ret_ele,&ret);
ret_ele->element = ele;
return ret;
}
std::string cpps_htmlparser_element::value()
{
return element->GetValue();
}
std::string cpps_htmlparser_element::name()
{
return element->GetName();
}
std::string cpps_htmlparser_element::text()
{
return element->text();
}
std::string cpps_htmlparser_element::html()
{
return element->html();
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/cppscript/cpps.git
git@gitee.com:cppscript/cpps.git
cppscript
cpps
cpps
v1.0.2

搜索帮助