Подтвердить что ты не робот

Как конвертировать HTML-текст в обычный текст?

друг   Мне нужно разобрать описание с url, где у разового содержимого есть несколько html-тегов, поэтому как я могу преобразовать его в обычный текст.

4b9b3361

Ответ 1

Простое избавление от HTML-тегов прост:

// replace all occurrences of one or more HTML tags with optional
// whitespace inbetween with a single space character 
String strippedText = htmlText.replaceAll("(?s)<[^>]*>(\\s*<[^>]*>)*", " ");

Но, к сожалению, требования никогда не бывают такими простыми:

Обычно элементам <p> и <div> требуется отдельная обработка, могут быть блоки cdata с символами > (например, javascript), которые испортят регулярное выражение и т.д.

Ответ 2

Вы можете использовать эту единственную строку, чтобы удалить теги html и отобразить ее как обычный текст.

htmlString=htmlString.replaceAll("\\<.*?\\>", "");

Ответ 4

Я бы рекомендовал разобрать необработанный HTML через jTidy, который должен дать вам вывод, с которым вы можете писать выражения xpath. Это самый надежный способ поиска HTML-кода.

Ответ 5

Если вы хотите разобрать как отображение браузера, используйте:

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);
  }
}

Я надеюсь, что это поможет разобрать таблицу также в формате браузера.

Спасибо, Ganesh