java - JSoup 的替代方案或如何清理空格

标签 java html jsoup

有人知道 JSoup 的替代品吗?

或者如何清理像 <p>&nbsp;</p> 这样的序列?

HTML Clean plug-in for jQuery 对我来说效果很好,但我感兴趣的是在服务器端而不是在中进行 html 代码清理客户端

或者,replaceAll 表达式要做什么??:

String cleanS = dirtyS.replaceAll("<p>&nbsp;</p>", ""); //This doesnt work

我发现脏 html 带有空格 #160 和其他类似 #32 的混合序列。

所以,我需要的是一个表达式来删除它们的任何混合。

mix space blank

最佳答案

您可以为此更改 OutputSettings:

示例:

final String html = ...;


OutputSettings settings = new OutputSettings();
settings.escapeMode(Entities.EscapeMode.xhtml);

String cleanHtml = Jsoup.clean(html, "", Whitelist.relaxed(), settings);

这对于 Jsoup 解析的 Document 也是可能的:

Document doc = Jsoup.parse(...);
doc.outputSettings().escapeMode(Entities.EscapeMode.xhtml);

// ...

编辑:

删除标签:

doc.select("p:matchesOwn((?is) )").remove();

请注意:(?is) 之后不是 是空白,而是 char #160 (= nbsp)。 这将删除所有其自身文本仅为   的 p-Tag。如果您想对所有其他标签执行此操作,可以将 p: 替换为 *:

关于java - JSoup 的替代方案或如何清理空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13071264/

相关文章:

java - 在设备上运行的 PopupWindow 中聚焦 EditText 时出现异常

html - 页面换行不占用最小高度

html - 向左浮动导致页面包装器折叠

java - 使用 jsoup 提取价格

java - JSoup 按 id 提取文本

java - 如何在Java中使用数据库DB4O上的distinct?

java - 错误的类路径导致 java.lang.NoClassDefFoundError

Java 集合。添加(E obj),但删除(Object obj)

javascript - 将代码实现到现有站点的后台。 (用JS动画替换背景图片)

Android - 如何使用 Webview 中的 evaluateJavascript 获取纯 HTML? JSOUP 无法解析结果 HTML