Избегайте пространственного объединения с JSoup - PullRequest
2 голосов
/ 20 августа 2011

Предположим, у меня есть div как таковой:

<div>
This is a paragraph
written by someone
on the internet.
</div>

Проблема в том, что когда JSoup анализирует это, он помещает все это в одну строку, поэтому, когда я вызываю text (), он читается так:

This is a paragraphwritten by someoneon the internet.

Теперь я понимаю, что на самом деле это не проблема JSoup, поскольку в настоящем html нет пробела.Тем не менее, есть ли способ использовать JSoup (возможно, какое-то переопределение или, возможно, параметр, который я не видел), чтобы при анализе он добавлял пробел между строками?Я полагаю, что это возможно (так как я могу проверить элемент в Chrome и отменить выбор переноса слов, и он получает то, что я хочу), но я не уверен, что JSoup может сделать это.

Есть мысли?

Ответы [ 2 ]

3 голосов
/ 28 августа 2011

Можете ли вы предоставить полный пример своего кода?Какую версию jsoup вы используете?

В текущей версии (1.6.1) этот код:

Document doc = Jsoup.parse("<div>\n" +
    "This is a paragraph\n" +
    "written by someone\n" +
    "on the internet.\n" +
    "</div>");
System.out.println(doc.text());

Производит:

This is a paragraph written by someone on the internet.

Т.е. \n\r\n и т. Д.) Преобразуются в текст как пробелы.

Рад исправить или улучшить его, если смогу воспроизвести:)

2 голосов
/ 20 августа 2011

в следующем посте показано, как получить все, включая разрыв строки

Удаление HTML-сущностей при сохранении разрывов строк с помощью JSoup

также ответ и комментарий в следующеместь другой способ (прочитайте комментарий в нем)

Удалите HTML-теги из строки

, и у этого есть даже другой способ, если вы проверите все ответы и комментарии

Как сохранить разрывы строк при использовании jsoup для преобразования html в простой текст?

...