<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JDom使用詳解

    JDom是不錯的API,算得上簡單高效,最重要是已經成為jcp的一部分,這個咱得弄弄。不過www.jdom.org上寫文檔的人實在太懶,文檔出奇的少,流傳得最廣的恐怕是IBM上面的一篇《JDom讓java XML變得容易》,不過這篇文章只涉及基本的讀寫操作,遠不能勝任實際工作。花了兩天時間,把JDom的基本操作整理出來了,涵蓋了大部分的操作:元素、屬性、命名空間、PI、DTD、Schema,應付一般的應用沒什么問題。反正我沒有在網上見到更加詳盡的版本,你見過的話,請留下連接。暫時來不及編寫詳細的說明,先帖幾段程序,對有經驗的Java開發者來說,已經足夠了。程序都已經經過了實際的測試,我使用的JDom是0.9版。

    1、創建XML文檔:


    package org.bromon.jdom.example; 
    import java.io.*
    import org.jdom.*
    import org.jdom.input.*
    import org.jdom.output.*

    public class CreateXML 

    public void Create() 

    try 

    Document doc 
    = new Document(); 
    ProcessingInstruction pi
    =new ProcessingInstruction("xml-stylesheet","type="textxsl" href="test.xsl""); 
    doc.addContent(pi); 

    Namespace ns 
    = Namespace.getNamespace("http://www.bromon.org" ); 
    Namespace ns2 
    = Namespace.getNamespace("other""http://www.w3c.org" ); 

    Element root 
    = new Element("根元素", ns); 
    root.addNamespaceDeclaration(ns2); 
    doc.setRootElement(root); 
    Element el1 
    = new Element("元素一"); 
    el1.setAttribute(
    "屬性""屬性一"); 

    Text text1
    =new Text("元素值"); 
    Element em 
    = new Element("元素二").addContent("第二個元素"); 

    el1.addContent(text1); 
    el1.addContent(em); 

    Element el2 
    = new Element("元素三").addContent("第三個元素"); 

    root.addContent(el1); 
    root.addContent(el2); 

    //縮進四個空格,自動換行,gb2312編碼 
    XMLOutputter outputter = new XMLOutputter(" "true,"GB2312"); 
    outputter.output(doc, 
    new FileWriter("test.xml")); 
    }
    catch(Exception e) 

    System.out.println(e); 
    }
     
    }
     

    public static void main(String args[]) 

    new CreateXML().Create(); 
    }
     

    }
     

    2、DTD驗證的:


    package org.bromon.jdom.example; 
    import java.io.*
    import org.jdom.*
    import org.jdom.input.*
    import org.jdom.output.*

    public class XMLWithDTD 

    public void validate() 

    try 

    SAXBuilder builder 
    = new SAXBuilder(true); 
    builder.setFeature(
    "http://xml.org/sax/features/validation";,true); 
    Document doc 
    = builder.build(new FileReader("author.xml")); 

    System.out.println(
    "搞掂"); 
    XMLOutputter outputter 
    = new XMLOutputter(); 
    outputter.output(doc, System.out); 
    }
    catch(Exception e) 

    System.out.println(e); 
    }
     

    }
     
    public static void main(String args[]) 

    new XMLWithDTD().validate(); 
    }
     

    }
     

    需要說明的是,這個程序沒有指明使用哪個DTD文件。DTD文件的位置是在XML中指定的,而且DTD不支持命名空間,一個XML只能引用一個DTD,所以程序直接讀取XML中指定的DTD,程序本身不用指定。不過這樣一來,好象就只能使用外部式的DTD引用方式了?高人指點。

    3、XML Schema驗證的:


    package org.bromon.jdom.example; 
    import java.io.*
    import org.jdom.*
    import org.jdom.input.*
    import org.jdom.output.*

    public class XMLWithSchema 

    String xml
    ="test.xml"
    String schema
    ="test-schema.xml"
    public void validate() 

    try 

    SAXBuilder builder 
    = new SAXBuilder(true); 
    //指定約束方式為XML schema 
    builder.setFeature("http://apache.org/xml/features/validation/schema";, true); 
    //導入schema文件 
    builder.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation";,schema); 
    Document doc 
    = builder.build(new FileReader(xml)); 

    System.out.println(
    "搞掂"); 
    XMLOutputter outputter 
    = new XMLOutputter(); 
    outputter.output(doc, System.out); 
    }
    catch(Exception e) 

    System.out.println(
    "驗證失敗:"+e); 
    }
     

    }
     

    }



    posted on 2008-03-04 10:04 魯勝迪 閱讀(726) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    <2008年3月>
    2425262728291
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    導航

    統計

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    文章分類

    新聞分類

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 九九久久国产精品免费热6| 亚洲中文字幕久久精品无码2021| 国产偷国产偷亚洲高清人| 日韩免费视频播放| 天天综合亚洲色在线精品| 成年人免费观看视频网站| 亚洲精品无码专区在线| 国产资源免费观看| 免费国产黄网站在线看| 亚洲线精品一区二区三区影音先锋| 国产人成网在线播放VA免费| 国产精品亚洲一区二区三区在线| 暖暖日本免费中文字幕| 亚洲精品不卡视频| 免费黄色大片网站| 一级做a爰片久久毛片免费看| 亚洲一区二区女搞男| 99久久国产免费-99久久国产免费 99久久国产免费中文无字幕 | 亚洲大尺度无码无码专线一区| 在线成人a毛片免费播放| 精品亚洲成a人在线观看| 亚洲伊人久久成综合人影院| a级毛片免费完整视频| 亚洲精品在线视频观看| 四虎影院免费视频| 一级做a爰性色毛片免费| 亚洲午夜未满十八勿入| 四虎影视www四虎免费| 人成免费在线视频| 色播亚洲视频在线观看| 爽爽日本在线视频免费| 爽爽爽爽爽爽爽成人免费观看| 亚洲精品在线电影| 亚洲国产午夜福利在线播放| 日韩精品久久久久久免费| 亚洲欧美aⅴ在线资源| 亚洲VA中文字幕无码毛片| 全免费a级毛片免费看不卡| 国产在线观a免费观看| 国产午夜亚洲精品| 九月丁香婷婷亚洲综合色|