在java中从文档中删除html标签的最快方法是什么?
我有一堆网页文档,想从中删除 html 标签。我在 StackOverflow 上看到了一些关于如何使用 java 的帖子,从正则表达式到 HtmlCleaner 和 Jsoup。
我有兴趣找到最快的方法来做到这一点。我有数百万个文档,因此性能对我来说至关重要。我什至可以用一点质量来换取性能。
感谢您提前提供任何答复。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我的意见是尽可能多地使用流/SAX 处理:
1)因为它使用较少的内存
2)速度很快
3)可以更容易地并行化(低内存消耗的结果)
当您拥有数百万个文档的用例时,这些因素是需要的(根据我的观点)。
请参阅Wikipedia SAX
因此,如果您的 Html 是严格的或 XHTML。使用 XSLT,这里有一个关于如何使用 SAX 转换 XML (XHTML) 的教程 XSLT+SAX +Java。
最后,如果您没有 XML 有效的 HTML,请查看此 Java:替换使用流(和 PushBackReader)的流、数组、文件等中的字符串。
华泰
My opinion is to use as much as possible stream/SAX processing:
1) because it uses less memory
2) it is fast
3) can be more easier parallelized (consequence of low memory consumption)
Those factors are needed (from my pov) by your use cases where you have million of documents.
please see there Wikipedia SAX
So if your Html is strict or XHTML. Use XSLT, and here is a tuto on how to transform XML (XHTML) using SAX XSLT+SAX+Java.
And finally, if you DON'T have an XML valid HTML please, look at this Java: Replace Strings in Streams, Arrays, Files etc. which make use of stream (and PushBackReader).
HTH
1)如果html是正确的xml那么您可以创建它的文档对象并删除节点。
2) 如果它不是正确的 xml,则将整个 html 读取为字符串 &并使用替换功能删除“html”sunbstring。
如果 HTMl 不是正确的 xml,那么正则表达式是在字符串中替换的最快方法。
1) if html is proper xml then you can create its document object and remove the node.
2) if it is not proper xml then read entire html as string & and use replace function to remove "html" sunbstring.
If HTMl is not proper xml then regex is fastest way to replace in a string.
似乎 java regexp 是最快的解决方案。然而,它降低了之后获得的文本的质量。
Seems like the java regexp is the fastest solution. However, it degrades the quality of the text obtained after.