Ich musste den Benutzereingabetext in meiner Datenbank mit HTML and CSS
Formaten speichern.
Der Fall ist:
RadEditor , Der Benutzer kopiert den Text von MS Word in diesen Editor, dann speichere ich diesen Text in der Datenbank mit diesem Format. Wenn dann die Daten im Bericht oder einem Etikett abgerufen werden, erscheinen einige Tags, die den Text umschließen !!
Ich benutze regulären Ausdruck, um alle Formate zu entfernen, aber vergeblich gelingt es manchmal und nicht die ganze Zeit.
private static Regex oClearHtmlScript = new Regex(@"<(.|\n)*?>", RegexOptions.Compiled);
public static string RemoveAllHTMLTags(string sHtml)
{
sHtml = sHtml.Replace(" ", string.Empty);
sHtml = sHtml.Replace(">", ">");
sHtml = sHtml.Replace("<", "<");
sHtml = sHtml.Replace("&", "&");
if (string.IsNullOrEmpty(sHtml))
return string.Empty;
return oClearHtmlScript.Replace(sHtml, string.Empty);
}
Ich frage, wie man das ganze Format mit HTMLAgility oder irgendeiner zuverlässigen Weise entfernt, um sicherzustellen, dass der Text rein ist?
Note:
Der Datentyp dieses Feldes in der Datenbank ist Lvarchar
HtmlAgility Pack macht die Arbeit mit HTML einfach.
HtmlDocument mainDoc = new HtmlDocument();
string htmlString = "<html><body><h1>Test</h1> more text</body></html>"
mainDoc.LoadHtml(htmlString);
string cleanText = mainDoc.DocumentNode.InnerText;