我正在尝试从各种文档中提取所有文本。 为此,我使用的是Apache Tika 1.4。
RecursiveTikaParser parser = new RecursiveTikaParser(new AutoDetectParser());
ParseContext parseContext = new ParseContext();
parseContext.set(Parser.class, parser);
这里的RecursiveTikaParser只是AutoDetectParser的包装器。
解析方法就是这样 -
ContentHandler content = new BodyContentHandler(-1);
Metadata metadata = new Metadata();
super.parse(stream, content, metadata, context);
System.out.println("Parsed text is " + content.toString());
现在,此代码必须能够处理多个文件,这就是我使用AutoDetectParser()的原因
我在测试中发现,给定一个xml文件 - 我只能提取标签之间的文本而不是注释,标签。
是否可以使用我当前的方法从文本文件中提取所有内容?
答案 0 :(得分:0)
试试这个
Metadata metadata = new Metadata();
stream = TikaInputStream.get(stream, null);
String mimtType = DETECTOR.detect(stream, metadata).toString();
Parser parser;
if (mimtType.equalsIgnoreCase("application/xml")) {
parser = new TXTParser();
} else {
parser = new AutoDetectParser();
}
ContentHandler content = new BodyContentHandler();
parser.parse(stream, content, metadata, new ParseContext());
System.out.println(content.toString());