Ich habe eine ASP.net-Webseite mit einer TinyMCE-Box. Benutzer können Text formatieren und den HTML-Code senden, der in einer Datenbank gespeichert werden soll.
Auf dem Server möchte ich den HTML-Code aus dem Text strippen, damit ich nur den Text in einer Volltext-Spalte für die Suche speichern kann.
Es ist ein Kinderspiel, den HTML-Code auf dem Client mit der jQuery-Funktion text () zu entfernen, aber das würde ich lieber auf dem Server tun. Gibt es irgendwelche Dienstprogramme, die ich dafür verwenden kann?
Siehe meine Antwort.
Ich habe das HtmlAgilityPack heruntergeladen und diese Funktion erstellt:
%Vor%Sehen Sie sich diese an Entfernen Sie mithilfe regulärer Ausdrücke HTML-Tags aus einer Zeichenfolge
Hier ist Jeff Atwoods RefactorMe-Code-Link für seine Sanitize-HTML-Methode
Sie müssen jedoch einen Namespace haben, auf den verwiesen wird:
%Vor%nehmen Sie diese Logik nur für Ihre Website
Wenn Sie nur Text für die Indexierung speichern, möchten Sie wahrscheinlich etwas mehr tun, als nur den HTML-Code zu entfernen, z. B. das Ignorieren von Stoppwörtern und das Entfernen von Wörtern, die kürzer sind als etwa 3 Zeichen. Ein einfacher Tag und Stripper, den ich einmal geschrieben habe, sieht jedoch so aus:
%Vor%Es ist alt und ich bin mir sicher, dass es optimiert werden kann (vielleicht mit einem kompilierten reg-ex?). Aber es funktioniert und kann helfen ...
Sie könnten:
Da Sie im System möglicherweise fehlerhafte HTML-Dateien erstellt haben, kann BeautifulSoup oder eine ähnliche Anwendung verwendet werden.
Es ist in Python geschrieben; Ich bin mir nicht sicher, wie es eine Schnittstelle sein könnte - mit der .NET-Sprache IronPython?