Java生成XML文件與XML文件的寫入


既然能在代碼中解析XML文檔獲取數據,當然也能通過代碼動態生成XML文檔了。

    與解析XML一樣,生成XML文檔也是用到了那4種方法。

 

    一:DOM方法生成XML

    步驟:

    1:創建DocumentBuilder:DocumentBuilder builder=new DocumentBuilder();

    2:創建dom對象:Document dom=builder.newDocument();

    3:創建dom中元素:Element element=dom.createElement("元素名");

    4:向元素添加子節點:element.appendChild(childElement);(dom樹就是通過不停appendChild形成的)

    5:向元素設置屬性:element.setAttribute("屬性名","屬性值");

    6:向元素添加文本內容:element.setTextContent("標簽間內容");

    7:把根元素添加至dom中:dom.appendChild(rootElement);(由於子節點都是添加到根結點下的,所以把根結點添加到dom就相當於把整棵標簽樹添加進dom了)

    8:把dom對象導出到xml文件:

      1)創建轉換器工廠:TransformerFactory  factory=TransformerFactory.newInstance();

      2)由工廠創建轉換器實例:Transformer transformer=factory.newTransformer();

      3)設置轉換格式:transformer.setOutputProperty(屬性,屬性值);//設置輸出到文檔時的格式,比如:換行等

      4)由轉換器把dom資源轉換到結果輸出流,而結果輸出流連接到一個xml文件:transformer.transform(new DOMSourse(dom),new StreamResult(xml_file));

 

    二:SAX方法操作XML

    步驟:

    1:創建SAX轉換器工廠:SAXTransformerFactory  factory=SAXTransformerFactory.newInstance();

    2:創建轉換handler:TransformerHandler handler=factory.newTransformerHandler();

    3:由handler創建轉換器:Transformer transformer=handler.getTransformer();

    4:設置轉換格式:transformer.setOutputProperty(屬性,屬性值);//設置輸出到文檔時的格式,比如:換行等

    5:創建Result連接到xml文件:Result res=new StreamResult(new FileOutputStream(xml_file));

    6:關聯result到handler:handler.setResult(res);

    7:利用handler操作xml文件:

     1)打開dom對象:handler.startDocument();

     2)創建元素:handler.startElement(uri,命名空間,元素名,屬性列表);//沒有則填null

     3)創建子結點:handler.startElement(uri,命名空間,子元素名,屬性列表);//在一個start與end的元素之間添加的結點就是它的子節點

     4)為結點添加屬性:上面start的元素名 element.setAttribute("","","屬性名","屬性值");

     5)為結點添加文本內容:在一個element的start與end之間,handler.characters(byte[],start,length);//byte就是文本內容,后面可以進行截取

     5)鏡像結束元素:hanlder.endElement("","",元素名);//前面有start,操作完這個結點后切記要end,添加鏡像結束標簽。

     6)關閉dom對象:handler.endDocument();

    原理:通過result關聯到xml文檔,通過handler開始一個標簽、設置標簽屬性、添加文本、結束一個標簽方法操作result從而改變xml文檔內容。

 

    三:JDOM方法生成XML

    步驟:創建根結點,由根結點創建dom對象,然后從根結點開始構造dom樹,最后輸出dom對象到xml文檔即可。

    1:生成根節點:Element root=new Element(“節點名”);

    2:設置根結點屬性:root.setAttribute(屬性名,屬性值);

    3:把根作為參數創建dom對象:Document dom=new Document(root);

    4:從根結點開始構造dom樹:

    1)創建結點:Element element=new Element("節點名");

    2)設置結點屬性:element.setAttribute(屬性名,屬性值);

    3)設置結點文本內容:element.setText(文本內容);

    4)添加結點到父節點下:father.addContent(child);

    5:dom樹構造完畢,進行輸出:

    1)創建XMLOutputer:XMLOutputer outputer=new XMLOutputer(format);//format參數可選,可以創建一個format對象設置輸出格式,比如換行、編碼格式等

    2)通過outputer把dom對象輸出到xml文檔:outputer.output(dom,new FileOutputStream(xml_file));

 

    四:DOM4j生成XML

    步驟:

    1:創建dom對象:Document dom=new Document();

    2:創建根節點:Element rooe=dom.addElement("根節點名");

    3:為根結點設置屬性:element.setAttribute(屬性名,屬性值);

    4:由根結點構建dom樹:

    1)創建子節點:Element element=father.addElement("節點名");

    2)設置結點屬性:element.setAttribute(屬性名,屬性值);

    3)設置結點文本內容:element.setText(文本);

    5:構建dom樹完畢,把dom對象輸出到xml文件:

    1)創建XMLWriter:XMLWriter writer=new XMLWriter(new FileOutputStream(xml_file),format);//format參數可選,可以傳一個format對象指定輸出格式

    2)設置輸出到文檔時是否轉義:writer.setEscapeText(false);//true轉義

    3)通過writer把dom對象寫到xml文檔中:wtiter.write(dom);

 轉載自:http://www.cnblogs.com/ygj0930/p/6651643.html 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM