1

私は大学の課題で友人を助けようとしていますが、CanLexをたくさん忘れていました。

重要なのは、HTMLと対応するCSSファイルを解析し、そのスタイルをタグに追加しようとしているということです。

例えば:

HTML

<body>
</body>

CSS

body{color:black;}

変更されたHTML

<body style="color:black;">
</body>

すべての正規表現が完了し、マクロも完了しました。

問題:入力HTMLと変更されたHTMLは同じファイルでなければなりません。yyinyyoutの両方を同じファイルにリダイレクトしようとしました...次にfputs(text、yyout);を使用します。ここで、textはchar *であり、すべてのスタイル情報(およびstyle = "")が含まれています。動作しません。

だから...君たちは彼を助けることができますか?

ファイル内の場所の概念を失わないことが重要です(したがって、style = ""は正しいタグに移動します)。

ありがとう

4

1 に答える 1

3

yyinとyyoutを同じファイルにリダイレクトすることはできません..(すでにご存知のとおり)。私のアプローチは次のようになります。

  1. 一時ファイルを作成する
  2. yyoutは一時ファイルに書き込みます
  3. 解析が終了したら、安全のために入力ファイルをバックアップします
  4. 入力ファイルを一時ファイルに置き換えます

yyoutがyyinと同じである場合、(元の入力)テキストがオーバーラップする他の方法はありません。

于 2009-12-01T02:09:55.983 に答える