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

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

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

    HelloWorld 善戰者,求之于勢,不責于人;故能擇人而任勢。

    知止而后有定,定而后能靜,靜而后能安,安而后能慮,慮而后能得。物有本末,事有終始。知所先后,則近道矣。

      BlogJava :: 首頁 ::  :: 聯系 ::  :: 管理 ::
      167 隨筆 :: 1 文章 :: 40 評論 :: 0 Trackbacks
    轉自http://hi.baidu.com/secbug/blog/item/9f8bdc515b7de7561038c20b.html
    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);
    }

    }

    }


    </script>

    posted on 2009-10-12 22:07 helloworld2008 閱讀(241) 評論(0)  編輯  收藏 所屬分類: java
    主站蜘蛛池模板: 午夜不卡久久精品无码免费| 猫咪www免费人成网站| 在线观看免费播放av片| 亚洲精品无码成人片在线观看| 亚洲精品乱码久久久久久V | 亚洲中文字幕在线乱码| 日本永久免费a∨在线视频 | 亚洲国产成人片在线观看| 抽搐一进一出gif免费视频| 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲 | 亚洲日韩VA无码中文字幕| 美女隐私免费视频看| 亚洲精品无码99在线观看| 在线免费视频你懂的| 久久精品国产亚洲av麻豆 | 午夜老司机免费视频| 亚洲.国产.欧美一区二区三区| 永久免费毛片手机版在线看| 女bbbbxxxx另类亚洲| 亚洲国产91精品无码专区| 三上悠亚在线观看免费| 亚洲精品在线观看视频| 毛片A级毛片免费播放| 亚洲1区2区3区精华液| 亚洲熟妇中文字幕五十中出| 免费人妻无码不卡中文字幕系| 亚洲午夜电影在线观看高清 | 久久精品亚洲视频| 日本最新免费网站| 亚洲AV噜噜一区二区三区| JLZZJLZZ亚洲乱熟无码| 在线成人精品国产区免费| 亚洲三级在线免费观看| 国产精品免费看香蕉| 成人片黄网站色大片免费观看APP| 亚洲美女aⅴ久久久91| 热99re久久精品精品免费| 免费在线黄色电影| 亚洲中文无码卡通动漫野外| 国产精品亚洲不卡一区二区三区| 免费不卡在线观看AV|