C# で次の HTML 文字列のすべての空白を削除することは可能ですか:
"
<html>
<body>
</body>
</html>
"
ありがとう
HTML やその他のマークアップを扱う場合は、通常、そのマークアップのルールを完全に理解するパーサーを使用して実行するのが最善です。
最初の利点は、最初の入力データがゴミであるかどうかを判断できることです。
パーサーが十分に賢い場合、不適切な形式のマークアップを自動的に修正したり、緩和されたルールで受け入れたりすることさえできるかもしれません。
次に、解析されたコンテンツを変更し、パーサーに変更を書き出させることができます。このようにして、マークアップ ルールが確実に守られ、正しい出力が得られます。
いくつかの単純な HTML マークアップのシナリオや、パーサーがすぐに立ち往生する非常に悪い形式のマークアップの場合、はい、入力文字列のハッキングに戻ることができます...文字列の置換など....それはすべてあなた次第ですどのアプローチを取る必要があります。
以下に、役立ついくつかのツールを示します。
HTML Tidy を使用して、HTML を整理する方法に関するいくつかのオプション/ルールを指定するだけです (余分な空白を削除するなど)。
これは WIN32 DLL ですが、そのための C# ラッパーがあります。
構造をよりよく理解し、おそらく独自の整理/再構築を行う必要がある場合は、HtmlAgilityPack を使用して HTML を解析できます。
myString = myString.Replace(System.Environment.NewLine, "");
正規表現を使用して、置換の空白文字に一致させることができます。
s = RegEx.Replace(s, @"\s+", String.Empty);