使用C++阅读HTML文本

Reading HTML text using C++

本文关键字:文本 HTML 阅读 C++ 使用      更新时间:2023-10-16

我现在正在读Allex Allain的书,有一个练习问题:在此处输入图像描述

我不知道如何思考这个问题,不知怎么的,我被卡住了,我应该先找到每个标签并将其保存到数组或向量中吗?然后将向量中的标签与原始字符串进行比较?并制定som条件?我不想从你那里寻找代码,我想自己解决它,我只是在寻找灵感或一些想法,或一些有用的方法。非常感谢。

您应该制作一个Parser。

阅读每个单词,如果找到标签,则找到下一个<tag>。如果这是相反的标记</tag>,那么您可以从该标记创建对象。

所提出的解决方案意味着创建名为tag的接口和名为<html><head>的派生类。

因此,在最终版本中,您将拥有一个电机(解析器),它接收文本并生成对象。

是的,就像@MSD561一样,他可以编写解析器。要么从头开始重新发明轮子,或者使用图书馆。

XML库可以用来实现第二个,并更好地理解结构:

我应该在C++中使用什么XML解析器?

它还将为您提供标签等的所有条目,您只需要通过xml树进行解析。

using namespace std;
void main ()
{
    ifstream x; 
    string name,head="<html><head></head><body><table>", tail="</table></body></html>", bodystart="<tr><td>",bodyclose="</td></tr>";
    ofstream y;
    x.open("example.txt");
    y.open("myhtmlfile.html");
    y<<head;
    while(!x.eof())
    {
        x>>name; 
        y<<bodystart<<name<<bodyclose;
    }
    y<<tail;
    x.close();
    cout<<"nn";
}