喜欢这个问题,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吗?
我看不到这些信息的明确记录,我希望避免采用跟踪和错误的方法。