どのようにすべてのタグを削除し、純粋なテキストを取得するには?


質問

私は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です。

人気のある回答

HtmlAgilityパックを使用すると、HTMLで簡単に作業できます。

HtmlDocument mainDoc = new HtmlDocument();
string htmlString = "<html><body><h1>Test</h1> more text</body></html>"
mainDoc.LoadHtml(htmlString);
string cleanText = mainDoc.DocumentNode.InnerText;




ライセンスを受けた: CC-BY-SA
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ