我想使用 apache tika 来提取 html 文本和 css 类名,以便我可以构建一个 poi 电子表格。我可以获得文本,但如何提取 css 类名?
先感谢您 ...
我想使用 apache tika 来提取 html 文本和 css 类名,以便我可以构建一个 poi 电子表格。我可以获得文本,但如何提取 css 类名?
先感谢您 ...
尝试创建自定义处理程序。如果您覆盖 startElement 方法,您将可以访问 html 属性。从 BodyContentHandler 继承应该是非常简单的起点。如果您的目标元素没有被映射并且您没有将它传递到 startElement 中,您需要通过使用 IdentityHtmlMapper 或编写自己的映射器来告诉 ParseContext 让它通过。
您可以从命令行 java -jar tika-app.jar -h [file|port...] 运行 Tika(-h 或 --html 是提供 HTML 内容输出的选项)
您也可以使用 html 解析器以编程方式执行此操作:
Parser parser = new HtmlParser();
这还不够,因为 HTML 解析器首先将传入的 HTML 文档转换为格式良好的 XHTML,然后将包含的元素映射到“安全”子集。默认映射会删除诸如和不影响 HTML 页面的文本内容并应用其他规范化规则的元素。此默认映射在大多数用例中产生良好的结果,但有时客户端希望更直接地访问原始HTML 标记。IdentityHtmlMapper 类可用于实现此目的:
ParseContext context = new ParseContext();
context.set(HtmlMapper.class, new IdentityHtmlMapper());
最后,您可以通过调用parse方法来获取您的内容:
parser.parse(stream, handler, metadata, context);
希望这个对你有帮助。:)