Freundes Ich muss die Beschreibung von der URL analysieren, wo der analysierte Inhalt nur wenige HTML-Tags hat, also wie kann ich ihn in einfachen Text konvertieren.
Wie konvertiere ich HTML-Text in reinen Text? [duplicate]
MGSenthil
Ja, Jsuppe wird die bessere Option sein. Gehen Sie einfach wie unten beschrieben vor, um den gesamten HTML-Text in reinen Text umzuwandeln.
String plainText= Jsoup.parse(yout_html_text).text();
-
Um die Zeilenumbrüche beizubehalten, können Sie jetzt auch verwenden
Jsoup.parse(html).wholeText()
– sonrad10
13. Juni 2019 um 22:12 Uhr
Es ist einfach, HTML-Tags loszuwerden:
// replace all occurrences of one or more HTML tags with optional
// whitespace inbetween with a single space character
String strippedText = htmlText.replaceAll("(?s)<[^>]*>(\\s*<[^>]*>)*", " ");
Aber leider sind die Anforderungen nie so einfach:
Normalerweise, <p>
und <div>
Elemente bedürfen einer gesonderten Behandlung, es können cdata-Blöcke mit vorhanden sein >
Zeichen (z. B. Javascript), die die Regex durcheinanderbringen usw.
-
Für einige Hintergrundinformationen, warum dies im allgemeinen Fall nicht funktioniert und nicht f(u|oo)l-sicher ist: RegEx passt auf offene Tags mit Ausnahme von eigenständigen XHTML-Tags
– Erwin Bolwidt
12. April 2017 um 13:00 Uhr
-
Ich liebe es … so einfach und doch so kraftvoll
– George
4. April 2021 um 20:11 Uhr
Kandha
Sie können diese einzelne Zeile verwenden, um die HTML-Tags zu entfernen und als einfachen Text anzuzeigen.
htmlString=htmlString.replaceAll("\\<.*?\\>", "");
Verwenden Sie Jsuppe.
Fügen Sie die Abhängigkeit hinzu
<dependency>
<!-- jsoup HTML parser library @ https://jsoup.org/ -->
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.13.1</version>
</dependency>
Jetzt in Ihrem Java-Code:
public static String html2text(String html) {
return Jsoup.parse(html).wholeText();
}
Rufen Sie einfach die Methode html2text auf, indem Sie den HTML-Text übergeben, und es wird reiner Text zurückgegeben.
ankitjaininfo
Verwenden Sie einen HTML-Parser wie z htmlCleaner
Für eine detaillierte Antwort: So entfernen Sie HTML-Tags in Java
Jon Freedman
Ich würde empfehlen, den rohen HTML-Code zu analysieren jAufgeräumt was Ihnen eine Ausgabe geben sollte, gegen die Sie xpath-Ausdrücke schreiben können. Dies ist die robusteste Art, HTML zu schaben, die ich gefunden habe.
mtb
Wenn Sie wie die Browseranzeige parsen möchten, verwenden Sie:
import net.htmlparser.jericho.*;
import java.util.*;
import java.io.*;
import java.net.*;
public class RenderToText {
public static void main(String[] args) throws Exception {
String sourceUrlString="data/test.html";
if (args.length==0)
System.err.println("Using default argument of \""+sourceUrlString+'"');
else
sourceUrlString=args[0];
if (sourceUrlString.indexOf(':')==-1) sourceUrlString="file:"+sourceUrlString;
Source source=new Source(new URL(sourceUrlString));
String renderedText=source.getRenderer().toString();
System.out.println("\nSimple rendering of the HTML document:\n");
System.out.println(renderedText);
}
}
Ich hoffe, dies hilft, die Tabelle auch im Browserformat zu analysieren.
Danke, Ganesh
-
Können die Downvoter bitte erklären, warum sie downvoten?
– koppor
11. Dezember 2016 um 21:40 Uhr
Was sind Ihre genauen Anforderungen? Müssen Sie HTML-Tags entfernen? Den Inhalt eines bestimmten Tags extrahieren?
– Vivien Barousse
31. August 2010 um 10:05 Uhr
Ich kann den Inhalt extrahieren, aber der Inhalt hat
zcc dsdfsf ddfdfsf
sfdfdfdfdf, wie oben bekomme ich meine Daten, aber ich muss ein einfacher Klartext sein. ohne diese HTML-Tags– MGSenthil
31. August 2010 um 10:54 Uhr
Ähnliche Frage mit guter Antwort hier: stackoverflow.com/questions/1518675/…. Ich habe Jericho verwendet und es funktioniert gut.
– рüффп
3. September 2013 um 9:49 Uhr
Sie sollten diese Frage als beantwortet markieren.
– ankitjaininfo
26. März 2014 um 6:30 Uhr
Duplikat von stackoverflow.com/q/240546/873282, stackoverflow.com/q/1699313/873282, stackoverflow.com/q/1518675/873282 und stackoverflow.com/q/832620/873282
– koppor
11. Dezember 2016 um 21:45 Uhr