2010年7月5日 星期一

XML 載入 DOM 時, DTD 的存放位置與顯示方式

當 XML 載入 DOM 時,我們將所有資料放置在 Document 物件內,若要查看 XML 內的 DTD(Document Type Definition)資料內容,必須先行宣告 DocumentType 物件,並使用 Document 內的函數將 DTD 載入至 DocumentType內,再利用 DocumentType 內的 getInternalSubset() Method 加以顯示,如下列程式範例:
public class dom extends JFrame{

     DocumentBuilderFactory documentbuilderfactory
                                                             = DocumentBuilderFactory.newInstance();
     DocumentBuilder documentbuilder;                      //宣告 DocumentBuilder 物件
     Document document;                                         //宣告 Document 物件
     DocumentType doctype;                                    //宣告 DocumentType 物件

     public dom(){
             documentbuilderfactory.setValidating(true);     //需要通過 DTD 的語法分析
             documentbuilderfactory.setIgnoringElementContentWhitespace(true);
             //忽略 XML 內的空白符號
             try {
                 documentbuilder=documentbuilderfactory.newDocumentBuilder();
                 // 建立新的 DocumentBuilder
                 ......

     public boolean inputxmlfile(){
             try{
                 document=documentbuilder.parse(new File(inputFileName));
                 //載入檔案
                 doctype=document.getDoctype();    
                 //將 XML 內的 DTD 載入至 doctype
                 System.out.println("DTD:\n"+doctype.getInternalSubset());
                 //將 doctype 的內容,利用 getInternalSubset() Method 來印出
                 ......

不過此方法只限定於內部 DTD ,若是外部 DTD 則無法取得。

參考資料:
  •  Java 2 教學手冊 — JDK 5  -  Ivor Horton 著   蔡明志、陳彥仲 譯

沒有留言:

張貼留言