Tika Parser是提供从任何类型的文档提取内容和元数据的工具的界面。它是Tika的关键组件, 并组织到org.apache.tika.parser包中。它提供了具有以下签名的parse()方法。
void parse(InputStream stream, ContentHandler handler, Metadata metadata, ParseContext context)
throws IOException, SAXException, TikaException;
它带有四个参数, InputStream, ContentHandler, Metadata和ParseContect类对象。四个参数中每个参数的目的如下所示。
这些参数具有以下描述。
Argument | Description |
---|---|
InputStream stream | 从此输入流中读取文档。 |
ContentHandler handler | ContentHandler是一个处理文档内容的接口。 |
元数据元数据 | 它是一个多值元数据容器。 |
ParseContext context | 它用于将上下文信息传递给Tika解析器。 |
Tika还提供了AutoDetectParser类, 该类可自动确定文件具有哪种内容, 然后调用适当的解析器。
除此之外, 它还支持各种其他解析器类, 可用于解析解析类类型的文档。请参阅下表。
Parser | Package | Description |
---|---|---|
AppleSingleFileParser | org.apache.tika.parser.apple | 它用于解析苹果文件。 |
ClassParser | org.apache.tika.parser.asm | 它用于解析类文件。 |
AudioParser | org.apache.tika.parser.audio | 用于解析音频文件。 |
MidiParser | org.apache.tika.parser.audio | 它用于解析midi文件。 |
Pkcs7Parser | org.apache.tika.parser.crypto | 它用于解析pkcs7。 |
TSDParser | org.apache.tika.parser.crypto | 它用于解析tsd。 |
DWGParser | org.apache.tika.parser.dwg | 它用于解析dwg。 |
EnviHeaderParser | org.apache.tika.parser.envi | 它用于解析envi。 |
EpubParser | org.apache.tika.parser.epub | 它用于解析epub。 |
ExecutableParser | org.apache.tika.parser.executable | 它用于解析可执行文件。 |
HtmlParser | org.apache.tika.parser.html | 它用于解析html文件。 |
ImageParser | org.apache.tika.parser.image | 用于解析图像文件。 |
WebPParser | org.apache.tika.parser.image | 它用于解析webp。 |
IptcAnpaParser | org.apache.tika.parser.iptc | 它用于解析iptcanpa。 |
JpegParser | org.apache.tika.parser.jpeg | 它用于解析jpeg。 |
DBFParser | org.apache.tika.parser.dbf | 它用于解析dbf文件。 |
Mp3Parser | org.apache.tika.parser.mp3 | 它用于解析mp3。 |
MP4Parser | org.apache.tika.parser.mp4 | 它用于解析mp4。 |
PDFParser | org.apache.tika.parser.pdf | 用于解析pdf文件。 |
Tika解析器示例
在此示例中, 我们使用AutoDetectParser自动检测文档类型, 然后解析内容和元数据。
package tikaexample;
import java.io.IOException;
import java.io.InputStream;
import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.sax.BodyContentHandler;
import org.xml.sax.SAXException;
public class AutoDetectParseExample {
public static void main(String[] args) throws IOException, SAXException, TikaException {
BodyContentHandler handler = new BodyContentHandler();
AutoDetectParser parser = new AutoDetectParser();
Metadata metadata = new Metadata();
try (InputStream stream = AutoDetectParseExample.class.getResourceAsStream("hello.txt")) {
parser.parse(stream, handler, metadata);
System.out.println(handler.toString());
}
}
}
输出
以下是提取后的hello.txt文件的内容。
Hello Welcome to srcmini
评论前必须登录!
注册