java - Jsoup 可以根据其类清理元素吗?

标签 java jsoup

我正在使用 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

最佳答案

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

  1. 将文本中的所有值元素提取到列表中。
  2. 将 span 元素中的所有值提取到另一个列表。
  3. 修改带有附加标记的文本值,例如 OMG_value。
  4. 从文本中删除所有 html 标签。
  5. 用已保存列表中的值迭代并替换所有 OMG_values。

如果您找到另一个解决方案 - 坚持下去。这是一个来自残酷 CEO 的硬编码救星。

关于java - Jsoup 可以根据其类清理元素吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7921240/

相关文章:

java - 我想传递 Jsoup Connect.data() 方法的映射中的属性值

java - 如何使用 jsoup 获取特定的 <div class...> ?

javascript - Android WebView 未返回所需的 HTML

java - 如何使用 vtd-xml 解析 xml 而无需硬编码 attr 名称?

java - 本地方法调用与对象方法调用

java - setOnClickListener错误: No Idea Why?

java - 提取 HTML <br> 标签中的文本 JSOUP

java - 最后关闭连接和声明

java - 在视口(viewport)组件上使用 JScrollPane 鼠标监听器

java - 使用 JSoup 时出现错误。为什么?