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

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

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

 

    一:DOM方法生成XMLdom

    步驟:ui

    1:建立DocumentBuilder:DocumentBuilder builder=new DocumentBuilder();編碼

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

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

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

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

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

    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 

相關文章
相關標籤/搜索