Inserisci qui la tua pubblicità

Java - Estrarre testo da file html

Da html a testo semplice

Problema Si ha dell'HTML in una stringa Java e si vuole estrarre il testo semplice escludendo il codice HTML. Soluzione Si può utilizzare una libreria Java di nome Jsoup (http://jsoup.org/) che permette di lavorare con l'HTML con estrema semplicità. Essa è in grado di: Parsare HTML da un URL, File o stringa Trovare e estrarre dati utilizzando il DOM o i selettori CSS Manipolare elementi, attributi e testo Per utilizzare questa libreria è sufficiente scaricare il file .jar da includere nel Class Path come External JAR (per Eclipse). Nel caso del problema in oggetto, è utile fare un esempio. Avendo dell'html in una stringa: String html = "

Un esempio di recupero del solo testo.

"; Per ottenere "Un esempio di recupero del solo testo." è necessario utilizzare il codice: String textOnly = Jsoup.parse(html).text(); Vediamo un esempio piu complesso, dove passiamo un oggetto di tipo MimeMultipart al nostro metodo:
private  String getTextFromMimeMultipart(MimeMultipart mimeMultipart) throws MessagingException, IOException {
        String result = "";
        int count = mimeMultipart.getCount();
        for (int i = 0; i < count; i++) {
            BodyPart bodyPart = mimeMultipart.getBodyPart(i);
            if (bodyPart.isMimeType("text/plain")) {
                result = result + "\n" + bodyPart.getContent();
                break;
            } else if (bodyPart.isMimeType("text/html")) {
                String html = (String) bodyPart.getContent();
                result = result + "\n" + Jsoup.parse(html).text();
            } else if (bodyPart.getContent() instanceof MimeMultipart) {
                result = result + getTextFromMimeMultipart((MimeMultipart) bodyPart.getContent());
            }
        }
        return result;
}
[email protected]