使用Tika从文本文件XML,HTML等中提取文本

时间:2019-10-28 12:25:05

标签: html xml apache-tika extraction

喜欢这个问题,extract text from xml tags in an XML file using apach tika parser

我想从基于文本的文件中提取所有文本,包括标记的内容,标记本身以及XML / HTML元素中的其他文本。

我尝试使用XML(application / xml)和HTML(text / html),发现AutoDetectParser返回的内容少于全文内容。

我还尝试了YAML(文本/纯文本)和JSON(文本/纯文本),它们确实返回了全文内容。

我知道我不能使用AutoDetectParser来做XML或HTML。我找不到文件记录是需要特殊处理的文件类型的列表。

要获取全文内容(即使这意味着文件的完整“原始”副本): 1.应该使用TXTParser解析哪些Mimetype? 2.应该使用其他解析器解析哪些Mimetype?

基本上,我要问AutoDetectParser返回的MIME类型少于全文内容吗?

谢谢

编辑

我的用例是能够从多种输入文件格式(包括txt,xml,html,doc(x),ppt(x),pdf,...等)中提取文本和元数据。

本质上,我希望能够处理Tika可以处理的任何文件类型。

我正在使用这样的代码

AutoDetectParser parser = new AutoDetectParser();
BodyContentHandler handler = new BodyContentHandler();
Metadata metadata = new Metadata();
ParseContext context = new ParseContext();
context.set(Parser.class, parser);

try (InputStream stream = new FileInputStream(fileToExtract)){
    parser.parse(stream, handler, metadata, context);
} catch ... {
}

我看到与上面提到的问题相同的XML文件结果。

我想找出的是:当AutoDetectParser和BodyContentHandler的组合返回的内容少于输入文件的全文时,它在哪里记录?

何时或针对哪种Mimetypes,我需要切换解析器和/或ContentHandler吗?

我看不到这些信息的明确记录,我希望避免采用跟踪和错误的方法。

0 个答案:

没有答案