由于我们的业务系统中有大量的MHT格式的资料,需要对其建立索引,搜索很久了一直没有找到相关解析的类库,只好自己动手丰衣足食了。已实现内容的提取以及和lucene的整合,稍后会完善编码检测及其他内容的提取,做一个完整的parser出来。
文本内容提取: 首先提取html部分的内容,解码之后使用nekoHtml提取文本内容;
public class MhtDocHandler extends HtmDocHandler {
private DOMFragmentParser parser = new DOMFragmentParser();
public Document getDocument(InputStream is) throws DocumentHandlerException {
DocumentFragment node = new HTMLDocumentImpl().createDocumentFragment();
try {
String mhts = IOUtils.toString(is);
int a1 = mhts.indexOf("
int a2 = mhts.indexOf("");
String html = mhts.substring(a1, a2 + 8);
//在mht中文本按照QuotedPrintable格式编码
html = decodeQuotedPrintable(html, "UTF-8");
StringReader r = new StringReader(html);
parser.parse(new InputSour