天天看點

使用DOM建立和寫入xml檔案

上一篇文章介紹了使用DOM解析xml檔案的方式,這篇文章将介紹如何使用DOM建立和寫入xml檔案。

與xml的解析操作一樣,在使用DOM建立和寫入xml檔案的時候,也需要擷取一個DocumentBuilderFactory類型的對象builderFactory,并通過builderFactory的newDocumentBuilder()方法擷取DocumentBuilder類的一個對象,其中Documentbuilder類定義了由xml檔案得到可操作的Document類型的執行個體的API,也就是說,通過下面這兩行代碼:

DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = builderFactory.newDocumentBuilder();
           

我們可以得到一個DocumentBuilder類的對象builder,這個類對象的方法屬性可供我們操作(讀取或者寫入)xml檔案。

我們通過調用builder的newDocument()方法,可以得到一個Document類型的執行個體newXML:

Document newXML = builder.newDocument();
           

得到Document對象後,我們就可以添加内容了。在上一篇文章中,擷取xml檔案的标簽元素時,有外到内的方式,調用getElementsByTagName(String name)方法依次擷取根元素,各級子元素。現在我們按照同樣的思路,調用createElement(String name)方法,依次添加根元素和各級子元素。首先添加的是根元素“Languages":

org.w3c.dom.Element languages = newXML.createElement("Languages");
           

标簽“Languages“有一個屬性'cat",值為”it",實作的代碼為:

languages.setAttribute("cat", "it");
           

至此,根元素的内容就設定完成,然後添加子元素。其實作方式一緻:

org.w3c.dom.Element lan1 = newXML.createElement("lan");
lan1.setAttribute("id", "1");
org.w3c.dom.Element name1 = newXML.createElement("name");
name1.setTextContent("Java");
org.w3c.dom.Element ide1 = newXML.createElement("ide");
ide1.setTextContent("Eclipse");
           

子元素”lan"有一個屬性“id”,值為1,其包含兩個子元素:“name"金額”ide",調用Element對象的setTextContent(String content)方法可以為子元素添加内容。以上的代碼隻是建立“lan“及其子元素,要兩個子元素與”lan“産生包含聯系,還需要一步:

lan1.appendChild(name1);
lan1.appendChild(ide1);
           

上面兩行代碼是将元素”name“和"ide"作為”lan”的子元素添加到其内部。這樣一個完整的"lan"标簽元素就建立完了,由于“lan"是根元素“Languages"的子元素,是以還需要将其添加到根元素的内部:

languages.appendChild(lan1);
           

同樣,由于根元素是屬于xml檔案(程式中就是Document類的執行個體newXML)的,是以,還需要将根元素添加到newXML中:

newXML.appendChild(languages);
           

經過以上步驟,建立了一個相對完整的Document對象,這個對象就代表一個完整的xml檔案,後面我會介紹如何通過程式讀寫剛才建立的xml檔案