Может ли Jsoup убирать элементы в зависимости от своего класса? - PullRequest
2 голосов
/ 27 октября 2011

Я использую Jsoup, чтобы попытаться очистить почти все html из документа, кроме белого списка, тега span с конкретным классом .

У меня есть это, но, очевидно, это заканчивается разрешением всех промежутков с классом attr

String html = "<p><strong>Lorem ipsum dolor<br /> sit amet</strong></p>"+
"<span class=\"killme\">Aenean</span> quam sem" +
"<span class=\"whitelistme\">lacinia molestie</span> nibh mattis ";

String clean = Jsoup.clean(html, 
                     Whitelist.none()
                     .addTags("span")
                     .addAttributes("span", "class"));

Есть ли способ очистить все HTML, кроме ?

, поэтому мойконечный результат будет

Lorem ipsum dolor sit amet
Aenean quam sem
<span class="whitelistme">lacinia molestie</span> nibh mattis

1 Ответ

1 голос
/ 27 октября 2011

Придерживаясь решения Jsoup, вы можете попробовать выполнить следующие шаги, но это жесткий код:

  1. Извлечь все элементы значений из текста в список.
  2. Извлеките все значения из элементов span в другой список.
  3. Измените текстовые значения с помощью добавленной метки, например OMG_value.
  4. Удалите все HTML-теги из текста.
  5. Переберите и замените все OMG_valuesсо значением из сохраненного списка.

Если вы найдете другое решение - придерживайтесь его. Это спаситель жесткого кода от вашего жестокого генерального директора.

...