Rou*_*her 4 html java strip out-of-memory jsoup
我想使用 JSOUP 从文本中仅删除 html 标签。我使用了这里的解决方案(我之前关于 JSOUP 的问题)但经过一些检查后我发现 JSOUP 得到 JAVA 堆异常:大 html 的 OutOfMemoryError 但不是全部。例如,它在 html 2Mb 和 10000 行上失败。代码在最后一行抛出异常(不在 Jsoup.parse 上):
public String StripHtml(String html){
html = html.replace("<", "<").replace(">", ">");
String[] tags = getAllStandardHtmlTags;
Document thing = Jsoup.parse(html);
for (String tag : tags) {
for (Element elem : thing.getElementsByTag(tag)) {
elem.parent().insertChildren(elem.siblingIndex(),elem.childNodes());
elem.remove();
}
}
return thing.html();
}
Run Code Online (Sandbox Code Playgroud)
有办法解决吗?
或者,您可以尝试使用 Jsoup 清理功能。下面的代码将删除位于传递的 html 字符串中的所有 html 标签。
public String StripHtml(String html) {
return Jsoup.clean(html, Whitelist.none());
}
Run Code Online (Sandbox Code Playgroud)
白名单 ( Whitelist.none()) 告诉 Jsoup 清洁器哪些标签是允许的。如您所见,此处不允许使用任何 html 标签。任何未在白名单中引用的标签都将被删除。
您可能对其他提供的白名单感兴趣:
可以通过添加标签(请参阅addTags方法)或删除标签(请参阅removeTags方法)来自定义这些基本白名单。
如果你想创建自己的白名单(小心!),这是要走的路:
Whitelist myCustomWhitelist = new Whitelist();
myCustomWhitelist.addTags("b", "em", ...);
Run Code Online (Sandbox Code Playgroud)
在此处查看详细信息:Jsoup 白名单
汤1.8.3
| 归档时间: |
|
| 查看次数: |
5580 次 |
| 最近记录: |