我正在尝试从各种文档中提取所有文本。
为此,我使用 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 文件 - 我只能提取标签之间的文本,而不能提取注释、标签。
是否可以使用我当前的方法从文本文件中提取所有内容?
尝试这样
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());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)