我需要阅读一个HTML文件,然后将其特定部分分成单独的HTML文件。
例如:
<html lang="en">
<head></head>
<body>
<ul>something 123</ul>
<p>something else 123</p>
<p>blabla</p>
<table>example</table>
</body>
</html>
<ul>
和</ul>
之间的所有内容都应保存在另一个HTML文件中,与<p>
和</p>.
之间的所有内容一样
我需要使用<fstream>
库,而且我不知道如何使用向量,因此除非有简单的解决方案,否则我可能需要在没有向量的情况下进行此操作。
目前的主要问题是,如何在找到字符串之前读取文件?
我的意思是,例如-找到string table = "<table>"
,然后程序将保存<table>
之后的所有内容,直到找到string end_table = "</table>"
。
感谢您的帮助。
答案 0 :(得分:0)
您可以使用find
通过以下内容定位开始和结束body标签:
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char* argv[]) {
string line = "some line with <body> in it";
string bodytag = "<body>";
if(line.find(bodytag) != string::npos) {
cout << "found" << endl;
}
return 0;
}
然后仅从文件中读取行,直到找到<body>
标记,然后输出它们直到找到</body>
标记。如果需要保存的内容出现在同一行的开始正文标签之后或结束正文标签之前,则可能需要进行修改。您的输入不包含此内容,因此这可能不是问题。