我想使用APache Tika的MediaType类来比较mediaTypes。正确使用Apache Tika MediaType
我首先使用Tika来检测MediaType。 然后我想根据MediaType开始一个操作。
因此,如果MediaType来自XML类型,我想要执行一些操作,如果它是一个压缩文件,我想启动其他操作。
我的问题是有很多XML类型,所以如何使用MediaType检查它是否是XML?
这里是我以前的(提卡之前)执行:
if (contentType.contains("text/xml") ||
contentType.contains("application/xml") ||
contentType.contains("application/x-xml") ||
contentType.contains("application/atom+xml") ||
contentType.contains("application/rss+xml")) {
processXML();
}
else if (contentType.contains("application/gzip") ||
contentType.contains("application/x-gzip") ||
contentType.contains("application/x-gunzip") ||
contentType.contains("application/gzipped") ||
contentType.contains("application/gzip-compressed") ||
contentType.contains("application/x-compress") ||
contentType.contains("gzip/document") ||
contentType.contains("application/octet-stream")) {
processGzip();
}
我要切换为使用蒂卡类似以下内容:
MediaType mediaType = MediaType.parse(contentType);
if (mediaType == APPLICATION_XML) {
return processXml();
} else if (mediaType == APPLICATION_ZIP || mediaType == OCTET_STREAM) {
return processGzip();
}
但问题是,Tika.detect( ...)返回许多不具有MediaType常量的不同类型。
如何确定MediaType是否为XML类型?或者如果它是压缩类型? 我需要一个“父亲”类型,其中包括它的所有子元素,可能的方法是: “boolean isXML()”,其中包含application/xml和text/xml以及application/x-xml 或“boolean isCompress() “其中包括所有的zip + gzip类型等。
你能澄清一下你的问题是什么?匹配媒体类型?创建媒体类型对象?确定哪些类型可以回来?处理父类/子类型关系?还有别的吗? – Gagravarr
我编辑了这个问题,并在问题中添加了以下内容(最后一节):如果MediaType是类型XML,我该如何识别它?或者如果是键入压缩? 我需要一个“父亲”类型,其中包括它的所有子元素,可能的方法是: “boolean isXML()”,其中包含application/xml和text/xml以及application/x-xml 或“boolean isCompress() “其中包括所有的zip + gzip类型等 – Chaiavi