0

私は本当に必死です。htmlタグを含むすべてのhtml要素を抽出する必要があります。プレーンテキストだけを残したい。これはCで行う必要があります。正規表現を使用することはお勧めしません。文字列関数を使用すると、内部の文字列ではなく、区切り文字が削除されます。HTMLファイルからプレーンテキストを抽出するプログラムを作成する必要があります。その方法についてのガイドをいただければ幸いです。ありがとう!

4

2 に答える 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 に答える