-5

C# で次の HTML 文字列のすべての空白を削除することは可能ですか:

"
<html>

<body>

</body>

</html>
"

ありがとう

4

4 に答える 4

5

HTML やその他のマークアップを扱う場合は、通常、そのマークアップのルールを完全に理解するパーサーを使用して実行するのが最善です。

最初の利点は、最初の入力データがゴミであるかどうかを判断できることです。

パーサーが十分に賢い場合、不適切な形式のマークアップを自動的に修正したり、緩和されたルールで受け入れたりすることさえできるかもしれません。

次に、解析されたコンテンツを変更し、パーサーに変更を書き出させることができます。このようにして、マークアップ ルールが確実に守られ、正しい出力が得られます。

いくつかの単純な HTML マークアップのシナリオや、パーサーがすぐに立ち往生する非常に悪い形式のマークアップの場合、はい、入力文字列のハッキングに戻ることができます...文字列の置換など....それはすべてあなた次第ですどのアプローチを取る必要があります。

以下に、役立ついくつかのツールを示します。

HTML整頓

HTML Tidy を使用して、HTML を整理する方法に関するいくつかのオプション/ルールを指定するだけです (余分な空白を削除するなど)。

これは WIN32 DLL ですが、そのための C# ラッパーがあります。

HtmlAgilityPack

構造をよりよく理解し、おそらく独自の整理/再構築を行う必要がある場合は、HtmlAgilityPack を使用して HTML を解析できます。

于 2012-08-24T10:55:58.320 に答える
3
myString = myString.Replace(System.Environment.NewLine, "");
于 2012-08-24T10:52:12.800 に答える
0

正規表現を使用して、置換の空白文字に一致させることができます。

s = RegEx.Replace(s, @"\s+", String.Empty);
于 2012-08-24T10:48:16.927 に答える