一個java讀取word文件並將其寫入xml文件的例子

haiyan0106發表於2007-09-11

希望可以給各位網友一點啟發。其中的poi包和jdom包可以從網上下載的,不再贅述。

 import java.io.FileOutputStream;
import java.io.IOException;
import java.io.*;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.output.XMLOutputter;
import org.apache.poi.hwpf.extractor.WordExtractor;
    
public class Java2XML {

    public static void main(String[] args) {
       try {
     FileInputStream in = new FileInputStream("1.doc");
           WordExtractor extractor = new WordExtractor(in);
           String str []= extractor.getParagraphText();
           int length=str.length;
           System.out.println("the length is:" + length);
            int n=0;
           Java2XML j2x = new Java2XML();
           System.out.println("生成 xml 檔案...");
//           j2x.BuildXMLDoc();
   // 建立根節點 item_pool

        Element root = new Element("item_pool");
          
       // 根節點新增到文件中;

        Document Doc = new Document(root);
    
       // 此處迴圈可替換成 遍歷 資料庫表的結果集操作;
       int i=0;

       while (n<length) {
              
           // 建立節點 questions;

           Element elements = new Element("questions");
              
           // 給 user 節點新增屬性 id;

 //          elements.setAttribute("id", "" + i);
              
           // 給 user 節點新增子節點並賦值;

           // new Element("id")中的 "id" 替換成表中相應欄位,setText(String.valueOf(i))中String.valueOf(i)替換成表中記錄值;
           elements.addContent(new Element("id").setText(String.valueOf(i))); //課程名稱
           elements.addContent(new Element("course_name").setText(str[n++])); //課程名稱
           elements.addContent(new Element("knowledge_point").setText(str[n++])); //考查點
           elements.addContent(new Element("unit_num").setText(str[n++])); //講次
     elements.addContent(new Element("difficulty").setText(str[n++]));//難度
     elements.addContent(new Element("separating_capacity").setText(str[n++]));//區分度
     elements.addContent(new Element("point").setText(str[n++]));//分數
     elements.addContent(new Element("question").setText(str[n++]));//試題正文
     elements.addContent(new Element("answer_A").setText(str[n++]));//選項A
     elements.addContent(new Element("answer_B").setText(str[n++]));//選項B
     elements.addContent(new Element("answer_C").setText(str[n++]));//選項C
     elements.addContent(new Element("answer_D").setText(str[n++]));//選項D
     elements.addContent(new Element("answer").setText(str[n++]));//試題答案
     n++;
     i++;
   
           // 給父節點item_pool新增question子節點;

           root.addContent(elements);
     }
        XMLOutputter XMLOut = new XMLOutputter();
         
       // 輸出 single_choice.xml 檔案;

        XMLOut.output(Doc, new FileOutputStream("single_choice.xml"));
       } catch (Exception e) {
           e.printStackTrace();
       }
    }
   
}

相關文章