Java нормализатор HTML? - PullRequest
       25

Java нормализатор HTML?

4 голосов
/ 28 февраля 2011

Есть ли библиотека, которая может преобразовать любую заданную HTML-страницу с JS, CSS во всем, в минималистичный унифицированный формат?

Например, если мы отображаем домашнюю страницу stackoverflow, я хочу, чтобы она отображаласьминимальный формат.Я хочу, чтобы все остальные сайты были отключены.

Вроде как веб-браузер Lynx, но с минимальной графикой.

Ответы [ 2 ]

2 голосов
/ 02 марта 2011

Лучший инструмент для текста в стиле HTML для Lynx, с которым я сталкивался, это Jericho's Renderer .

Это просто в использовании:

    Source source=new Source(new URL(sourceUrlString)); // or new Source("<html>pass in raw html string</html>");
    String renderedText=source.getRenderer().toString();
    System.out.println("\nSimple rendering of the HTML document:\n");
    System.out.println(renderedText);

(от здесь )

и очень хорошо обрабатывает HTML в диком виде (плохо отформатированный).

Вот несколько первых строк этой страницы, отформатированных таким образом с использованием Jericho:

Stack Обмен, вход | карьера | чат | мета | о | чаво

переполнение стека * Вопросы * Теги * Пользователи * Значки * Без ответа * Задать вопрос

нормализатор Java HTML?

**

Есть ли библиотека, которая может преобразовывать любая заданная страница HTML с JS, CSS все над ним, в минималистической форме формат

Например, если мы отрендерим Домашняя страница stackoverflow, я хочу это показываться в минимальном формате. я хочу все остальные сайты, которые будут отключены.

Вроде как веб-браузер Lynx, но с минимальная графика.

java lynx link | edit | flag спросил 2 дня назад Ким Чен Ву 593112 89% принимают Оценить Хотите изменить свой HTML-код, чтобы упростить HTML-код или сделать Вы хотите показать этот "минималистичный Единый формат "для вашего пользователя? Или сделать Вы хотите создать образ? - PAULO Эберманн вчера упростил HTML-код не жертвуя родственником расположение элементов. - Ким Чен Ву 16 часов назад

2 ответа

Чтобы ответить на ваш первый вопрос: № I не думаю, что есть библиотека для эта цель. (По крайней мере это то, что мой "гуглинг" закончился).

И я думаю, что причина этого в том, что то, что вы хотите, является особенным необходимо.

Так что в качестве решения вашей проблемы вы может разобрать HTML и отобразить его как вы хотите в JEditorpane или все, что вы используете для отображения.

Я могу только предложить способ, которым я бы сделал это (это потому, что я знаком с xml и все вокруг).

* 

  Use a library to ensure that your html conforms to xhtml:

http://htmlcleaner.sourceforge.net/release.php

* 

  then either parse the xml with DOM or SAX parsers and display it the

как хочешь.

или

* use xslt to transform the document into some other html document

, что приводит к виду, который соответствует вашему необходимо.

или

* use one of the available html parser librarys. (The most of which i

найдено где устаревшее (2006) но они могут быть вариантом для вас.

Это всего лишь одно предположение, как вы мог бы сделать это. Я уверен, что есть тысячи других способов, которые будут делать то же самое.

1 голос
/ 02 марта 2011

Чтобы ответить на ваш первый вопрос: Нет. Я не думаю, что для этой цели есть библиотека.(По крайней мере, это то, к чему привел мой "поиск").

И я думаю, что причина этого в том, что то, что вы хотите, является особой потребностью.

Так что в качестве решения дляВаша проблема: вы можете разобрать html и отобразить его так, как вы хотите, в JEditorpane или что вы используете для отображения.

Я могу только предложить способ, которым я бы это сделал (это потому, что я знаком сxml и все, что вокруг него).

  • Используйте библиотеку, чтобы убедиться, что ваш html соответствует xhtml: http://htmlcleaner.sourceforge.net/release.php

  • , а затем либо проанализируйте xml с помощью DOMили SAX-парсеры и отображать их так, как вы хотите.

или

  • использовать xslt для преобразования документа в какой-либо другой html-документ, что приводит к виду, которыйсоответствует вашим потребностям.

или

  • используйте одну из доступных библиотек HTML-анализатора.(Большинство из которых я нашел где-то устаревшим (2006)), но они могли бы стать для вас вариантом.

Это всего лишь одно из предположений, как вы могли бы это сделать.Я уверен, что есть тысячи других способов сделать то же самое.

...