интерпретировать вывод HTML без браузера - PullRequest
0 голосов
/ 08 октября 2018

Есть ли способ отформатировать HTML-код, присутствующий в строке Java, в соответствующий вывод, который браузер показывает без браузера в самой Java?Пример: допустим, строка:

    <ul>
        <li>red</span></li>
        <li>green</span></li>
        <li>orange<br /></span></li>
    </ul>
    <br />number list:<br />
    <ol>
        <li>one</li>
        <li>two</li>
        <li>three
            <ul>
                <li>embedded bullet
                    <ul>
                        <li>again&nbsp;
                            <ul>
                                <li>again
                                    <ul>
                                        <li>next one</li>
                                    </ul>
                                </li>
                            </ul>
                        </li>
                    </ul>
                </li>
            </ul>
        </li>
        <li>four</li>
    </ol>

This is O/P:
outputString="
   • one
   • two
   • three
 number list:
   1. one
   2. two
   3. three
    •  embedded bullet
        • again
             • next one
   4. four"

, тогда форматер должен преобразовать это в строку outpuString.

1 Ответ

0 голосов
/ 08 октября 2018

Нет встроенного способа конвертировать HTML в форматированный текст в Java.Либо вы найдете похожий на lynx (текстовый) браузер, написанный на Java, который вы можете использовать, либо вам придется программировать его самостоятельно.

Если ваш входной HTML очень простой и правильно сформированный (как в вашем примере), это относительно просто.Если вы хотите поддерживать дикий HTML, найденный в Интернете, это очень сложное мероприятие.Подумайте, CSS, Javascript и макеты столбцов, которые пытаются реагировать на количество горизонтальных пикселей, которые вы визуализируете.

Легкая часть - это анализ HTML, потому что есть много анализаторов, которые вы можете использовать.Например, я успешно использовал JSoup .Сложной частью является рендеринг текста, который похож на то, что вы видели бы в реальном браузере.Движки макетов - одна из самых хитрых частей браузеров.

...