qt 中使用 Gumbo 获取所有div标签 节点 提供例子
时间: 2023-05-26 21:01:31 浏览: 109
在Qt中使用Gumbo获取所有div标签节点的示例代码如下:
```cpp
#include <QCoreApplication>
#include <gumbo.h>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
const char* html = "<html><body><div id=\"header\"></div><div id=\"content\"></div></body></html>";
GumboOutput* output = gumbo_parse(html);
GumboNode* root = output->root;
//查找所有div节点
GumboVector nodes = ((GumboNode*)root)->v.element.children;
for (unsigned int i = 0; i < nodes.length; ++i)
{
GumboNode* child = (GumboNode*)nodes.data[i];
if (child->type == GUMBO_NODE_ELEMENT && strcmp(child->v.element.tag->name, "div") == 0)
{
//输出div节点的内容
const char* text = gumbo_get_text(child);
printf("%s\n", text);
}
}
gumbo_destroy_output(&kGumboDefaultOptions, output);
return 0;
}
```
在这个例子中,我们使用Gumbo解析HTML字符串,并获取所有div标签节点。通过遍历节点列表,我们可以找到类型为GUMBO_NODE_ELEMENT且标签名称为"div"的节点。然后我们可以使用gumbo_get_text()函数获取div节点的内容并输出到标准输出。
阅读全文