0

チェス ソフトウェアによって生成された HTML ファイルのアップロード機能を備えた Web アプリケーションを使用して、チェス ゲームを再現する JavaScript プレーヤーを含めることができます。

アップロードされたファイルをフレームにロードするのは好きではないので、ファイルの動的部分を解析して、ソフトウェアによって生成された HTML と JavaScript を再構築します。

HTML の問題は、すべての属性値が引用符ではなくアポストロフィで囲まれていることです。ライブラリまたは c# を使用した正規表現の置換を使用してこれを修正する方法を探しています。

html は次のようになります。

<DIV class='pgb'><TABLE class='pgbb' CELLSPACING='0' CELLPADDING='0'><TR><TD>

そして、私はそれを次のように変換します:

<DIV class="pgb"><TABLE class="pgbb" CELLSPACING="0" CELLPADDING="0"><TR><TD>
4

2 に答える 2

1

HTML Agility Packのようなものを使用して生成された HTML を解析し、それを文字列に再シリアル化するように依頼するのが最善の方法だと思います(できれば、その過程でフォーマットの問題を修正します)。正規表現やその他の HTML の直接的な文字列操作を試みることは、困難で、壊れやすく、壊れやすいものになるでしょう...


例 (HTML がハードディスク上のファイルに保存されている場合):

HtmlDocument doc = new HtmlDocument();
doc.Load("file.htm");
doc.Save("file.htm");

stringまたはStream入力 HTMLから直接メモリ内でこれを行うこともできます。

于 2011-11-24T10:04:52.540 に答える
0

次のようなものを使用できます。

string ouputString = Regex.Replace(inputString, @"(?<=\<[^<>]*)\'(?=[^<>]*\>)", "\"");

Oded の発言の後に変更しました。これにより、本文の HTML はそのまま残ります。しかし、HTML の解析に正規表現を使用するのは良くないという意見には同意します。マークの答えはより良いです。

于 2011-11-24T09:56:00.763 に答える