2007-02-20 Word 文書からテキストの抽出 ソースメモ Java XML Office 2007 で標準文書形式として採用されている『Open Office XML』(OOXML) の文書からテキストのみを抽出するには,.docx で保存されたファイルの拡張子を .zip に変換し,word/document.xml に含まれるXML文書をパースすれば良し.以下,Javaの例題..docx 文書から XML の文書(テキスト形式)を返す. OOXML のパース部は省略. /** * ZipFileを使ってZip解凍&テキスト取得 * @param file .docx 文書 */ import java.util.zip.*; private String docGetXML(File file) { StringBuffer sb = new StringBuffer(); try { ZipFile zipFile = new ZipFile(file); if(zipFile.size() == 0) return null; Enumeration enumeration = zipFile.entries(); while(enumeration.hasMoreElements()) { ZipEntry entry = (ZipEntry) enumeration.nextElement(); if (!entry.isDirectory()) { File parent = new File(entry.getName()).getParentFile(); if(parent != null){ if(entry.getName().equals("word/document.xml")) { InputStream in = zipFile.getInputStream(entry); InputStreamReader fis = new InputStreamReader(in,"UTF-8"); BufferedReader br = new BufferedReader(fis); String buf; while(( buf = br.readLine() ) != null) { sb.append(buf); } br.close(); fis.close(); } } } } return sb.toString(); } catch (IOException e){ return null; } }