<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 魯勝迪 閱讀(727) 評論(0)  編輯  收藏


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


    網站導航:
     
    <2008年3月>
    2425262728291
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    導航

    統計

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    文章分類

    新聞分類

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲一区二区在线免费观看| 亚洲风情亚Aⅴ在线发布| 亚洲精品美女久久7777777| 国产啪亚洲国产精品无码| 亚洲AV无码一区二区三区牲色| 四虎在线视频免费观看视频| 亚洲一区免费观看| 免费不卡在线观看AV| 精品亚洲aⅴ在线观看| 伊人亚洲综合青草青草久热| 理论片在线观看免费| 亚洲女久久久噜噜噜熟女| 国内精品一级毛片免费看| 亚洲一区综合在线播放| 亚洲自偷自偷在线制服| 免费无遮挡无码永久在线观看视频| 亚洲av永久无码精品漫画 | 精品成人免费自拍视频| 毛片亚洲AV无码精品国产午夜| 亚洲精品国产成人影院| 99精品免费观看| 99re免费视频| 2020因为爱你带字幕免费观看全集| 免费看内射乌克兰女| 中文字幕免费在线观看| 久久精品国产亚洲AV蜜臀色欲| 免费人成激情视频| 国产亚洲精品不卡在线| 亚洲真人日本在线| 成年女人毛片免费观看97| 国产无遮挡又黄又爽免费网站 | 黄色网址免费在线| 精品一区二区三区免费毛片| 亚洲首页在线观看| 亚洲免费精彩视频在线观看| 一本久到久久亚洲综合| 日韩免费三级电影| 久久WWW免费人成人片| 亚洲免费在线观看视频| 搡女人免费视频大全| 亚洲精品狼友在线播放|