Entfernen Sie HTML-Tags von Scala String

8

Ich entwickle eine Web-App mit Scala und Lift Framework. Ich habe in der Datenbank, die HTML-Perex der Seite enthält

%Vor%

Und in einem Szenario muss ich diese perex drucken, aber ohne html-Tags.

%Vor%

Es ist möglich, dies in Scala zu tun? Weil ich versucht habe, mit Google zu suchen, aber ohne Erfolg.

Danke für alle Antworten.

    
kajo 22.03.2011, 14:13
quelle

3 Antworten

8

Wenn die Zeichenfolge gültiges XML ist, können Sie Folgendes verwenden:

scala.xml.XML.loadString("<b>Hi all, this is parex</b>").text

Wenn es sich nicht um gültiges XML handelt, können Sie scala.util.matching.Regex oder eine HTML-Parsing-Bibliothek wie Ссылка

verwenden     
Erick Fleming 22.03.2011, 14:44
quelle
0

Die beste Lösung, die ich gefunden habe, war, cyberneko zu verwenden, um Ihre Zeichenfolge zu parsen und eine "clevere" SAX-Ereignisbehandlung durchzuführen. p>

cyberneko analysiert Ihren HTML-Code selbst dann, wenn er ungültig ist. Dies ist der Fall für den Großteil des HTML-Codes, den Sie wahrscheinlich in freier Wildbahn finden.

Wenn Sie eine benutzerdefinierte ContentHandler registrieren, die im Wesentlichen alle außer den character -Ereignissen ignoriert und diese nur an einen Zeichenfolgengenerator anfügt, erhalten Sie eine gute erste Annäherung mit einem ärgerlichen Fehler: Wörter, die durch ein Blockelement getrennt sind wird am Ende verkettet ( for<br/>example = & gt; forexample ).

Eine bessere Lösung besteht darin, eine Liste aller Blockelemente zu erhalten und Ihr ContentHandler auf startElement -Ereignisse hören zu lassen. Wenn das Element Block 1 ist, fügen Sie einfach ein Leerzeichen an Ihren Zeichenfolgengenerator an.

Beachten Sie, dass dies zwar gut zu funktionieren scheint, aber nicht perfekt für Ihren Anwendungsfall. <br/> wird beispielsweise nicht in einen Zeilenumbruch umgewandelt. Es sollte jedoch nicht zu viel Arbeit sein, um dies hinzuzufügen, wenn es erforderlich ist.

    
Nicolas Rinaudo 04.01.2016 10:50
quelle
0

TagSoup sollte Ihre Anforderung erfüllen, um eine echte HTML-Datei zu analysieren .

sbt-Abhängigkeiten,

%Vor%

Beispielcode,

%Vor%

Verwendung,

%Vor%     
user5698801 17.07.2017 07:00
quelle