无法正确 Key-Value 与 Tika 配对
Can't get correct Key-Value Pairs with Tika
我正在尝试从 Office 文档中获取元数据值,它显示为 key-value 对的全部是这个:
Content-Type: application/zip
我只是不能说出这个问题。为什么它只显示 Content-Type?
我感兴趣的是像标题这样的键。
import java.io.FileInputStream;
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 App
{
private static final String PATH = "C:/docs/myDocument.docx";
public static void main( String[] args ) throws IOException, SAXException, TikaException
{
Metadata metadata = new Metadata();
AutoDetectParser parser = new AutoDetectParser();
InputStream fileStream = new FileInputStream(PATH);
BodyContentHandler handler = new BodyContentHandler();
parser.parse(fileStream, handler, metadata);
String[] metadataNames = metadata.names();
for (String key : metadataNames) {
String value = metadata.get(key);
System.out.println(key + ": " + value);
}
}
}
提升对答案的评论 - 您似乎缺少一些关键的 Apache Tika 罐子或它们的依赖项。
如果你使用 Maven,那么你的 pom 应该有(截至 2015 年 1 月)应该有类似的东西:
<properties>
<tika.version>1.7</tika.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
<version>${tika.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-parsers</artifactId>
<version>${tika.version}</version>
</dependency>
</dependencies>
tika-core
神器为您提供 运行 Tika 和开发您自己的解析器所需的一切,但不附带任何解析器。它是 tika-parsers
工件(+依赖项!),它提供了所有内置的 Tika 解析器,您需要用它来处理您的文件
我正在尝试从 Office 文档中获取元数据值,它显示为 key-value 对的全部是这个:
Content-Type: application/zip
我只是不能说出这个问题。为什么它只显示 Content-Type? 我感兴趣的是像标题这样的键。
import java.io.FileInputStream;
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 App
{
private static final String PATH = "C:/docs/myDocument.docx";
public static void main( String[] args ) throws IOException, SAXException, TikaException
{
Metadata metadata = new Metadata();
AutoDetectParser parser = new AutoDetectParser();
InputStream fileStream = new FileInputStream(PATH);
BodyContentHandler handler = new BodyContentHandler();
parser.parse(fileStream, handler, metadata);
String[] metadataNames = metadata.names();
for (String key : metadataNames) {
String value = metadata.get(key);
System.out.println(key + ": " + value);
}
}
}
提升对答案的评论 - 您似乎缺少一些关键的 Apache Tika 罐子或它们的依赖项。
如果你使用 Maven,那么你的 pom 应该有(截至 2015 年 1 月)应该有类似的东西:
<properties>
<tika.version>1.7</tika.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
<version>${tika.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-parsers</artifactId>
<version>${tika.version}</version>
</dependency>
</dependencies>
tika-core
神器为您提供 运行 Tika 和开发您自己的解析器所需的一切,但不附带任何解析器。它是 tika-parsers
工件(+依赖项!),它提供了所有内置的 Tika 解析器,您需要用它来处理您的文件