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

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

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

    本站不再更新,歡迎光臨 java開發技術網
    隨筆-230  評論-230  文章-8  trackbacks-0
    1) JDOM的組成.任何一個框架都有自己的組成結構,JDOM雖說不上是一個框架,因為她沒有提供給我們任何的擴展框架.如果說其是一個工具,那么她是一個結構非常簡單的XML操作工具,其包插如下包:

    org.JDOM
    org.JDOM.input
    org.JDOM.output
    org.JDOM.adapters
    org.JDOM.transform
    我們可以從字面上去理解每個包的作用. JDOM包含以下類型
    Attribute
    CDATA
    Coment
    DocType
    Document
    Element
    EntityRef
    Namespace
    ProscessingInstruction
    Text
    在開發jdom應用程序中我們所用的所有類型....就這幾個類型很簡單就可理解.下面介始一個每個開發包的作用:
    * org.JDOM.transform
    在涉及xslt格式轉換時應使用下面的2個類
    JDOMSource
    JDOMResult

    * org.JDOM.input
    輸入類,一般用于文檔的創建工作
    SAXBuilder
    DOMBuilder
    ResultSetBuilder
    注jdom的輸入源非常廣泛,可以是字符串,可以是其它的XML工具生成的XML文件。
    * org.JDOM.output
    輸出類,用于文檔轉換輸出
    XMLOutputter
    SAXOutputter
    DomOutputter
    JTreeOutputter
    從以上輸出類可以看出jdom可以輸出常用類型號XML文件
    下面是我寫的一個讀xml,一個創建XML的兩個例程
    ==================
    package jdom;

    /**
    * @author 
    * TODO 學習用例 ,pdw2009@tom.com
    *
    */
    import org.jdom.*;
    import org.jdom.input.*;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.*;
    import java.util.*;
    public class readabc {

    public static void main(String[] args) throws Exception{
    SAXBuilder sb=new SAXBuilder();//建立構造器
    Document doc=sb.build(new FileInputStream("E:\\eclipse\\myworkspace\\base\\src\\jdom\\abc.xml"));
    Element root=doc.getRootElement(); //獲得根結點

    List list=root.getChildren(); //將所有根結點下的子結點放入list
    for(int i=0;i<list.size();i++){
    System.out.println("----------------------");
    Element item=(Element)list.get(i); //獲得實體結體

    //用于獲得屬性
    String name=item.getAttributeValue("id");
    System.out.println("Name---->"+name);
    //獲得了節點

    String temptitle=item.getChildText("title");
    System.out.println("測試"+temptitle); //使用item獲得子節點屬性

    Element sub=item.getChild("title");
    String title=sub.getText();
    System.out.println("title---->"+title);

    Element sub2=item.getChild("email");
    String email=sub2.getText();
    System.out.println("email-->"+email);

    Element sub3=item.getChild("content");
    String content=sub3.getValue();
    System.out.println("content-->"+content);

    }

    }
    }
    -----------以上代碼要讀的xml文件內容如下----------------------------
    <?xml version="1.0" encoding="gb2312"?>
    <messages>
    <message id="jhgjg">i <title>jhgjg</title>
    <content>jhgjg</content>
    <email>jhjh</email>
    </message>
    <message id="fdsa">
    <title>fdsa</title>
    <content>fasdf</content>
    <email>fsadfa</email>
    </message>
    </messages>
    --------------------------------------------------------------------------------------------
    創建一個xml文件
    ----------------
    /*
    * Created on 2000-1-1
    *
    * TODO To change the template for this generated file go to
    * Window - Preferences - Java - Code Style - Code Templates
    */
    package jdom;
    import java.io.FileWriter;

    import org.jdom.*;
    import org.jdom.adapters.*;
    import org.jdom.adapters.*;
    import org.jdom.input.*;
    import org.jdom.output.Format;
    import org.jdom.output.XMLOutputter;
    import java.io.*;
    /**
    * @author *
    * TODO 學習用例 ,pdw2009@tom.com
    *
    */
    public class createonexml {

    public static void main(String[] args)throws Exception {
    Element carElement=new Element("car");
    Document mydoc=new Document(carElement);
    //carElement.addAttribute(new Attribute("vin", "123fhg5869705iop90"));

    //添加內容
    carElement.addContent(new Element("make").addContent("DF"));
    carElement.addContent(new Element("year").addContent("1997"));
    carElement.addContent(new Element("color").addContent("green"));
    carElement.addContent(new Element("listenr").addContent("SSDDDBBA"));
    //添加注解
    carElement.addContent(new Comment("描述一輛車"));

    //輸出到文件
    XMLOutputter outer=new XMLOutputter();
    FileWriter fw=new FileWriter("E:\\eclipse\\myworkspace\\base\\src\\jdom\\car.xml");
    Format fm=Format.getPrettyFormat(); //設定XML文件的輸出格式
    fm.setEncoding("GBK");

    outer.setFormat(fm);
    outer.output(mydoc,fw);
    outer.output(mydoc,System.out);
    fw.close();
    }
    }
    ------------------以上代碼生成的xml文件內容如下---------------
    <?xml version="1.0" encoding="GBK"?>
    <car>
    <make>DF</make>
    <year>1997</year>
    <color>green</color>
    <listenr>SSDDDBBA</listenr>
    <!--描述一輛車-->
    </car>
    ---------------------------------------------------------------------------------------
    在jdom 1。0版本里輸出xml文檔時,我們必須定義該文檔的格式,如xml文件的編輯格式,輸出的xml文檔是否換行,是否刪除我作的空格,等。所以在輸出xml文檔時需定義一個Format對象類,并給相關屬性賦值,然后設定XMLOutputter所用到的格式類,outter.setFormat()。
    請關注我有關JDOM的文章希望對你有所幫助。。。。。

    詳細說明請參考jdom API文檔
    1
    lonely wolf  
    1 將一個xml文件輸出到一個字符串對象里
    XMLOutputter outputter = new XMLOutputter();
    Element element = new Element("Greeting");
    String hello = outputter.outputString(element);

    2 一個list轉換成一個xml文件。。雖然其list中的字段是固定了,我們也可以修改類集轉換代碼,以實現動態字段的轉換

    package jdom;
    import java.io.FileWriter;
    import java.util.*;
    import org.jdom.*;
    import org.jdom.input.*;
    import org.jdom.output.*;

    /**
    * @author  pdw2009@tom.com
    * TODO 將一個List對象,轉換一個XML文件
    */
    class Person{
    private String ID; //學號
    private String name; //姓名
    private String addr; //地址
    private String tel; //聯系電話
    private String email; //email地址
    /**
    * @return Returns the addr.
    */
    public String getAddr() {
    return addr;
    }
    /**
    * @param addr The addr to set.
    */
    public void setAddr(String addr) {
    this.addr = addr;
    }
    /**
    * @return Returns the iD.
    */
    public String getID() {
    return ID;
    }
    /**
    * @param id The iD to set.
    */
    public void setID(String id) {
    ID = id;
    }
    /**
    * @return Returns the name.
    */
    public String getName() {
    return name;
    }
    /**
    * @param name The name to set.
    */
    public void setName(String name) {
    this.name = name;
    }
    /**
    * @return Returns the tel.
    */
    public String getTel() {
    return tel;
    }
    /**
    * @param tel The tel to set.
    */
    public void setTel(String tel) {
    this.tel = tel;
    }
    /**
    * @return Returns the email.
    */
    public String getEmail() {
    return email;
    }
    /**
    * @param email The email to set.
    */
    public void setEmail(String email) {
    this.email = email;
    }
    }

    public class listtoxml {
    public List creatlist(){
    List list=new ArrayList();
    Person person=new Person();
    person.setAddr("廣西合浦");
    person.setID("1048");
    person.setName("hfggf");
    person.setTel("138777778888");
    person.setEmail("pdw2009@tom.com");
    list.add(person);

    person.setAddr("廣西南寧");
    person.setID("1036");
    person.setName("蠢盧");
    person.setTel("1387778888");
    person.setEmail("XXXXX@tom.com");
    list.add(person);
    return list;
    }
    public static void main(String[] args) throws Exception {
    listtoxml lx=new listtoxml();
    List list=lx.creatlist(); //生成Person類的對象list
    Element root=new Element("Student");//根條目;
    Iterator it=list.iterator(); //獲取iterator接口
    while(it.hasNext()){
    Person p=(Person)it.next();
    Element person=new Element("Person");
    person.setAttribute("ID",p.getID());
    root.addContent(person); //在根元素下,添加一個person子元素

    Element ele=new Element("Name");
    ele.setText(p.getName());
    person.addContent(ele); //在person元素下添加一個name的子元素

    Element addr=new Element("Address");
    addr.setText(p.getAddr());
    person.addContent(addr);

    Element tel=new Element("tel");
    tel.setText(p.getTel());
    person.addContent(tel);

    Element email=new Element("email");
    email.setText(p.getEmail());
    person.addContent(email);

    }
    Document doc=new Document(root);
    XMLOutputter outer=new XMLOutputter();
    Format fm=Format.getPrettyFormat();
    fm.setEncoding("GBK");
    outer.setFormat(fm);
    FileWriter fw=new FileWriter("E:\\eclipse\\myworkspace\\base\\src\\jdom\\listtoxml.xml");
    outer.output(doc,fw); //只需要把自己定義的FileWriter替換掉System.out就可以確定xml文件的輸出了
    }
    }

    僅供參與,只需要添加你的jdbc連接便于工作可實現,從數據庫里取出記錄并生



    定位節點
    XML
    是樹狀結構,類似檔案系統內數據夾的結構,XPath也類似檔案系統的路徑命名方式。不過XPath 是一種模式(Pattern),可以選出 XML檔案中,路徑符合某個模式的所有節點出來。例如要選catalog底下的cd中所有price元素可以用:
    /catalog/cd/price    

    
    

    如果XPath的開頭是一個斜線(/)代表這是絕對路徑。如果開頭是兩個斜線(//)表示文件中所有符合模式的元素都會被選出來,即使是處于樹中不同的層級也會被選出來。以下的語法會選出文件中所有叫做cd的元素(在樹中的任何層級都會被選出來):

    
    
    //cd
    
    

    選擇未知的元素
    使用星號(Wildcards,*)可以選擇未知的元素。下面這個語法會選出/catalog/cd 的所有子元素:

    
    
    /catalog/cd/*
    
    

    以下的語法會選出所有catalog的子元素中,包含有price作為子元素的元素。

    
    
    /catalog/*/price
    
    

    以下的語法會選出有兩層父節點,叫做price的所有元素。

    
    
    /*/*/price
    
    

    以下的語法會選擇出文件中的所有元素。

    
    
    //*
    要注意的是,想要存取不分層級的元素,XPath語法必須以兩個斜線開頭(//),想要存取未知元素才用星號(*),星號只能代表未知名稱的元素,不能代表未知層級的元素。

    選擇分支
    使用中括號可以選擇分支。以下的語法從catalog的子元素中取出第一個叫做cd的元素。XPath的定義中沒有第0元素這種東西。

    
    
    /catalog/cd[1]
    
    

    以下語法選擇catalog中的最后一個cd元素:(XPathj并沒有定義 first() 這種函式喔,用上例的 [1]就可以取出第一個元素。

    
    
    /catalog/cd[last()]
    
    

    以下語法選出含有price子元素的所有/catalog/cd元素。

    
    
    /catalog/cd[price]
    
    

    以下語法選出price元素的值等于10.90的所有/catalog/cd元素

    
    
    /catalog/cd[price=10.90]
    
    

    以下語法選出price元素的值等于10.90的所有/catalog/cd元素 price元素

    
    
    /catalog/cd[price=10.90]/price
    
    

    選擇一個以上的路徑
    使用Or操作數(|)就可以選擇一個以上的路徑。例如:

    
    
    /catalog/cd/title | catalog/cd/artist
     選擇所有title以及artist元素
     //title | //artist
     

    選擇所有title以及artist以及price元素

    
    
    //title | //artist | //price
     選擇屬性 
    XPath中,除了選擇元素以外,也可以選擇屬性。屬性都是以@開頭。例如選擇文件中所有叫做country的屬性:
     //@country
             

    選擇所有含有country這個屬性的cd元素:

     
    //cd[@country]
             

    以下語法選擇出含有屬性的所有cd元素

     
    //cd[@*]
             

    以下語法選擇出country屬性值為UKcd元素

     
    //cd[@country='UK']
    posted on 2006-10-13 09:09 有貓相伴的日子 閱讀(1246) 評論(2)  編輯  收藏 所屬分類: jdk

    評論:
    # re: JDOM入門 2010-05-18 11:27 | lll
    寫的太好,太全了,太感謝了!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!贊!  回復  更多評論
      
    # re: JDOM入門 2014-05-03 18:48 | lin
    頂,  回復  更多評論
      
    本站不再更新,歡迎光臨 java開發技術網
    主站蜘蛛池模板: 91嫩草亚洲精品| 亚洲国产成人久久综合一区| 亚洲AV永久无码天堂影院| 免费阿v网站在线观看g| 亚洲国产理论片在线播放| 成人女人A级毛片免费软件 | 免费人成视频在线观看视频| 久久久亚洲精华液精华液精华液| 国产成人免费a在线资源| 免费人人潮人人爽一区二区| 国产亚洲成人在线播放va| 中文字幕无码一区二区免费| 亚洲国产成人久久精品影视| 日韩亚洲国产高清免费视频| 中文字幕精品三区无码亚洲| 啊v在线免费观看| 97在线视频免费公开视频| 亚洲自偷自偷精品| 成熟女人特级毛片www免费| 亚洲日韩在线中文字幕综合| 不卡精品国产_亚洲人成在线| 久久国产免费观看精品| 亚洲人成网站在线观看播放青青| 免费观看男人免费桶女人视频| 四虎一区二区成人免费影院网址 | yellow视频免费看| 亚洲国产精品久久久久久| 久久久久久久免费视频| 免费观看四虎精品成人| 久久精品夜色国产亚洲av| 青青久在线视频免费观看| 一区二区免费在线观看| 中文字幕第一页亚洲| 亚洲欧洲国产日韩精品| 一本色道久久88—综合亚洲精品| 国产免费AV片在线观看播放| 99久久亚洲精品无码毛片| 色吊丝永久在线观看最新免费| 久久国产精品免费一区| 亚洲人6666成人观看| 久久久久亚洲精品男人的天堂|