使用Apache Tika解析器从XML文件中提取XML标签中的文本

3

我正在尝试从各种文档中提取所有的文本。为此,我正在使用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文件-我只能提取标签之间的文本,而不能提取注释、标签等。

使用当前的方法,是否可能从文本文件中提取所有内容?

1个回答

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());

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接