Wie konvertiere ich HTML-Text in reinen Text? [duplicate]

Lesezeit: 3 Minuten

Benutzer-Avatar
MGSenthil

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.

  • 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

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

Benutzer-Avatar
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.

Benutzer-Avatar
ankitjaininfo

Verwenden Sie einen HTML-Parser wie z htmlCleaner

Für eine detaillierte Antwort: So entfernen Sie HTML-Tags in Java

Benutzer-Avatar
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.

Benutzer-Avatar
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

1175370cookie-checkWie konvertiere ich HTML-Text in reinen Text? [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy