Jsoup能否根据其类清理元素?

时间:2011-10-27 19:26:33

标签: java jsoup

我正在使用Jsoup尝试清理文档中的所有html,但白名单列出 span 标记,其中包含特定类

我已经得到了这个,但显然这会结束允许所有跨度为attr class

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"));

除了&lt;&lt; span class =“whitelistme”&gt; 之外,还有办法清除所有HTML吗?

所以我的最终结果将是

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

1 个答案:

答案 0 :(得分:1)

坚持使用Jsoup解决方案,您可以尝试以下步骤,但它是硬编码:

  1. 将所有值元素从文本中提取到列表中。
  2. 将span元素中的所有值提取到另一个列表。
  3. 使用附加标记修改文本值,例如OMG_value。
  4. 从文本中删除所有html标记。
  5. 使用保存列表中的值迭代并替换所有OMG_values。
  6. 如果你找到另一个解决方案 - 坚持下去。这是你残忍的首席执行官的硬编码救星。