Java生成xml——DOM生成
阿新 • • 發佈:2019-01-27
一、DOM生成xml例項
DomToXmlDemo.java
public class DomToXmlDemo { public static void main(String[] args) { //1、建立DocumentBuilderFactory例項 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); try { //2、建立DoumentBuilder例項 DocumentBuilder builder = factory.newDocumentBuilder(); //3、新建一個Document物件 Document document = builder.newDocument(); //4、設定xml檔案是否是standalone的屬性,預設是false,即是否引用外部dtd規範檔案,預設是引用,這裡顯示地設為不引用 document.setXmlStandalone(true); //5、建立根節點bookstore Element bookStore = document.createElement("bookstore"); //6、建立booksore下的book節點 Element bookOne = document.createElement("book"); //7、為book節點設定屬性id的值為1 bookOne.setAttribute("id", "1"); //8、建立book節點下的一系列子節點 Element nameOne = document.createElement("name"); //9、設定子節點的值,這裡要用setTextContent()方法 //不能用setNodeValue(String)方法,因為nameOne是Element型別的節點,nodeValue的值為null nameOne.setTextContent("冰與火之歌"); Element authorOne = document.createElement("author"); authorOne.setTextContent("喬治馬丁"); Element timeOne = document.createElement("time"); timeOne.setTextContent("2014"); Element priceOne = document.createElement("price"); priceOne.setTextContent("60"); //10、將子節點加到book節點下 bookOne.appendChild(nameOne); bookOne.appendChild(authorOne); bookOne.appendChild(timeOne); bookOne.appendChild(priceOne); //11、將book加到根節點bookstore下 bookStore.appendChild(bookOne); //12、將根節點bookstore加到document中 document.appendChild(bookStore); //13、接下來就是將建立好的xml轉換為xml檔案,先建立TransformenrFactory例項 TransformerFactory tff = TransformerFactory.newInstance(); //14、建立Transformer例項 Transformer tf = tff.newTransformer(); //15、設定檔案的屬性,這裡是設定檔案生成後顯示的內容自動換行,如果不設定這個屬性,生成的檔案內容預設是顯示在一行的,不方便閱讀 tf.setOutputProperty(OutputKeys.INDENT, "yes"); //16、將xml輸出到xml檔案中 tf.transform(new DOMSource(document), new StreamResult("xml/domToBook.xml")); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); } } }
執行結果:
生成domToBook.xml:
<?xml version="1.0" encoding="UTF-8"?><bookstore>
<book id="1">
<name>冰與火之歌</name>
<author>喬治馬丁</author>
<time>2014</time>
<price>60</price>
</book>
</bookstore>