Как получить текст внутри HTML / текстовое содержимое? - PullRequest
3 голосов
/ 10 февраля 2011

Привет всем, у меня есть html / text что-то вроде:

<html><head><style type="text/css">
</style></head>
<body><div style="font-family:times new roman,new york,times,serif;font-size:14pt">first text<br><div><br></div><div style="font-family: times new roman,new york,times,serif; font-size: 14pt;"><br><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><font size="2" face="Tahoma"><hr size="1"><b><span style="font-weight: bold;">one:</span></b> second text<br><b><span style="font-weight: bold;">two:</span></b> third text<br><b><span style="font-weight: bold;">three:</span></b> fourth text<br><b><span style="font-weight: bold;">five:</span></b> fifth text<br></font><br>

и я хочу извлечь текст с именем «first text» в вышеупомянутом html-контенте.поэтому общая идея состоит в том, чтобы получить первый простой текст в HTML-текст

Ответы [ 3 ]

3 голосов
/ 11 февраля 2011

Вы отметили , поэтому вы используете Jsoup .Это уже хороший выбор;)

Вот как это можно сделать с помощью Jsoup:

String html = "<html><head><style type=\"text/css\"></style></head><body><div style=\"font-family:times new roman,new york,times,serif;font-size:14pt\">first text<br><div><br></div><div style=\"font-family: times new roman,new york,times,serif; font-size: 14pt;\"><br><div style=\"font-family: times new roman,new york,times,serif; font-size: 12pt;\"><font size=\"2\" face=\"Tahoma\"><hr size=\"1\"><b><span style=\"font-weight: bold;\">one:</span></b> second text<br><b><span style=\"font-weight: bold;\">two:</span></b> third text<br><b><span style=\"font-weight: bold;\">three:</span></b> fourth text<br><b><span style=\"font-weight: bold;\">five:</span></b> fifth text<br></font><br>";
Document document = Jsoup.parse(html);
String firstText = document.select(":containsOwn(text)").first().ownText();
System.out.println(firstText);

Результат:

первый текст

См. Также:

1 голос
/ 10 февраля 2011

Вы можете использовать синтаксический анализатор в стиле SAX, например TagSoup .

. Для этого инициализируйте анализатор расширенным DefaultHandler, чтобы определить, когда * 1006 в первый раз впервыеВызовите метод и сохраните результат.

Найдите http://sax.sourceforge.net/quickstart.html, чтобы узнать, как настроить синтаксический анализатор.

0 голосов
/ 10 февраля 2011

Если вы хотите что-то довольно простое, посмотрите на мой класс PageScraper , который был разработан для использования на платформах Java ME и поэтому будет работать практически везде.Ничего особенного, но простой способ превратить текстовый поток в теги и не теги.Выполняет отложенную загрузку атрибутов, поэтому довольно быстро используется, если вы в основном игнорируете теги.

...