2011-11-19 3 views
3

Я использую Jsoup для анализа и изменения некоторого HTML. В некоторых местах я хочу добавить неразрывную космическую сущность (& nbsp;) в HTML. Я предположил, что я мог бы сделать это, как и в этом упрощенном примере:Как написать символ амперсанда в Jsoup

Element paragraph = someDocument.select("p").first(); 
paragraph.text("First sentence.  Second sentence."); 

Но Jsoup превращает мой   в   эффективно кодирующим сам амперсанд. Я предполагаю, что мой реальный вопрос: как я могу вручную записать символ амперсанда в текст Element?

ответ

3

Вы делаете Element.text. Если его html, вместо этого используйте .html (String s), замените свой код на

Element paragraph = someDocument.select("p").first(); 
paragraph.html("First sentence.  Second sentence."); 
+0

Таким образом вам не нужно беспокоиться о добавлении других специальных символов html –

2

Попробуйте использовать значение unicode для свободного пространства.

Element paragraph = someDocument.select("p").first(); 
paragraph.text("First sentence.\u00a0Second sentence."); 
+2

+1. И если вы предпочитаете 'nbsp''' 00a0', вы можете использовать 'org.jsoup.nodes.Entities.getCharacterByName (« nbsp »)'. – ruakh

+0

Использование escape-последовательности unicode непосредственно в строке не работает. Однако 'Entities.getCharacterByName (String s)' работает. Все еще идет с другим ответом, потому что я думаю, что это более уместно для моей точной ситуации. +1 к комментарию Рухаха. Заткни мою нообильность. Могу ли я не прокомментировать +1? Кажется, я голосовал за него. , , – Knave