2

我有一堆网络文档,想从中删除 html 标签。我在 StackOverflow 上看到了一些关于如何在 java 中执行的帖子,从 regex 到 HtmlCleaner 和 Jsoup。

我有兴趣找到最快的方法来做到这一点。我有数百万份文档,所以性能对我来说至关重要。我什至可以用一些质量来换取性能。

感谢您提前提供任何答案。

4

3 回答 3

1

我的意见是尽可能多地使用流/SAX 处理:1)因为它使用更少的内存 2)它很快 3)可以更容易并行化(低内存消耗的结果)

您拥有数百万个文档的用例需要这些因素(来自我的观点)。请参阅维基百科 SAX

因此,如果您的 Html 是严格的或 XHTML。使用 XSLT,这里是关于如何使用 SAX XSLT+SAX+Java转换 XML (XHTML) 的教程。

最后,如果您没有 XML 有效的 HTML,请查看这个Java:Replace Strings in Streams, Arrays, Files etc.它使用了流(和 PushBackReader)。

高温高压

于 2012-01-03T13:24:52.750 回答
0

1)如果 html 是正确的 xml,那么您可以创建其文档对象并删除节点。

2) 如果不是正确的 xml,则将整个 html 读取为字符串 & 并使用替换功能删除“html”sunbstring。

如果 HTMl 不是正确的 xml,那么正则表达式是替换字符串的最快方法。

于 2012-01-03T12:03:06.707 回答
0

似乎 java regexp 是最快的解决方案。但是,它会降低之后获得的文本的质量。

于 2012-01-10T13:01:08.297 回答