私は本当に必死です。htmlタグを含むすべてのhtml要素を抽出する必要があります。プレーンテキストだけを残したい。これはCで行う必要があります。正規表現を使用することはお勧めしません。文字列関数を使用すると、内部の文字列ではなく、区切り文字が削除されます。HTMLファイルからプレーンテキストを抽出するプログラムを作成する必要があります。その方法についてのガイドをいただければ幸いです。ありがとう!
質問する
3352 次
2 に答える
1
出発点は次のとおりです。
void remove_html(char* str) {
char* html_str = str;
while(*str) {
if(*html_str == '<')
while(*html_str && *html_str++ != '>');
*str++ = *html_str++;
}
}
int main() {
char foo[] = "hello <p>friends<b>!</b></p>";
remove_html(foo);
puts(foo);
}
角度構文を削除するだけで、解析は行いません。また、エスケープ文字は変換されません。
于 2013-03-10T05:54:06.830 に答える
0
メモ帳で html ファイルを開くと、プレーン テキスト (画像などはありません) であることがわかります。すべてのタグは < で始まり > で終わり、それ以外はすべてテキストです。このようにして、< > 記号の間に現れる文字を除いて、ファイルを 1 回だけ読み取ることができます。
擬似コード:
bool intag=false;
for (i=0;i<filesize;i++) {
char c = readchar();
if (c=='<') intag=true;
if (!intag) writechar(c);
if (c=='>') intag=false;
このロジックはほとんどの場合に機能しますが、インデントされたテキストや、場合によってはページ上の JavaScript を処理するために、さらに作業が必要になる場合があります。
于 2013-03-10T05:53:28.327 に答える