Comment supprimer toutes les balises et obtenir le texte pur?

asp.net html html-agility-pack informix regex

Question

Je devais stocker le texte saisi par l'utilisateur dans ma base de données aux formats HTML and CSS .

L'affaire est:

RadEditor , L'utilisateur copie le texte de MSWord dans cet éditeur, puis je le stocke dans la base de données avec ce format. puis, lorsque vous récupérez les données dans le rapport ou certaines étiquettes, des balises apparaissent enveloppant le texte !!

J'utilise l'expression régulière pour supprimer tous les formats, mais en vain, cela réussit parfois et pas toujours.

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);
        }

Je demande comment supprimer tout le format à l'aide de HTMLAgility ou tout autre moyen fiable de s'assurer que le texte est pur?

Note: Le type de données de ce champ dans la base de données est Lvarchar.

Réponse populaire

Le pack HtmlAgility facilite le travail avec HTML.

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


Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow