2014-01-16 2 views
2

Я пытаюсь извлечь весь текст из разных документов. И для этого я использую Apache Tika 1.4.извлечение текста из XML-тегов в XML-файле с использованием apach tika parser

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

Попробуйте, как это

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()); 
Смежные вопросы