1

我想使用 apache tika 来提取 html 文本和 css 类名,以便我可以构建一个 poi 电子表格。我可以获得文本,但如何提取 css 类名?

先感谢您 ...

4

2 回答 2

2

尝试创建自定义处理程序。如果您覆盖 startElement 方法,您将可以访问 html 属性。从 BodyContentHandler 继承应该是非常简单的起点。如果您的目标元素没有被映射并且您没有将它传递到 startElement 中,您需要通过使用 IdentityHtmlMapper 或编写自己的映射器来告诉 ParseContext 让它通过。

于 2013-09-24T17:07:57.073 回答
0

您可以从命令行 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);

希望这个对你有帮助。:)

于 2013-10-02T13:33:08.187 回答