4

HTML and CSSユーザー入力テキストをフォーマットとともにデータベースに保存する必要がありました。

ケースは次のとおりです。

RadEditor、ユーザーはテキストを MSWord からこのエディターにコピーし、このテキストをその形式でデータベースに保存します。次に、レポートまたはラベルのデータを取得すると、テキストをラップするタグが表示されます!!

正規表現を使用してすべての形式を削除しますが、常に成功するわけではありません。

private static Regex oClearHtmlScript = new Regex(@"<(.|\n)*?>", RegexOptions.Compiled);

        public static string RemoveAllHTMLTags(string sHtml)
        {

            sHtml = sHtml.Replace("&nbsp;", string.Empty);
            sHtml = sHtml.Replace("&gt;", ">");
            sHtml = sHtml.Replace("&lt;", "<");
            sHtml = sHtml.Replace("&amp;", "&");
            if (string.IsNullOrEmpty(sHtml))
                return string.Empty;

            return oClearHtmlScript.Replace(sHtml, string.Empty);
        }

HTMLAgilityを使用してすべての形式を削除する方法、またはテキストが純粋であることを確認するための信頼できる方法を質問します。

Note:データベース内のこのフィールドのデータ型はLvarchar です

4

4 に答える 4

3

これにより、文字列からすべての html タグが取り除かれます。

sHtml = Regex.Replace(sHtml, "<.*?>", "");
于 2013-04-30T15:59:56.407 に答える
1

Agility Pack を使用してそれを行う方法については、こちらの回答を参照してください。ただし、2 文字未満の単語を削除しないように、コードを少し変更する必要がある場合があります。また、改行も削除されるため、長い 1 行のテキストが残ります。

于 2013-05-01T14:11:41.650 に答える