package?DOMTest;
import?java.io.File;
import?javax.xml.parsers.DocumentBuilder;
import?javax.xml.parsers.DocumentBuilderFactory;
import?javax.xml.parsers.ParserConfigurationException;
import?javax.xml.transform.OutputKeys;
import?javax.xml.transform.Transformer;
import?javax.xml.transform.TransformerConfigurationException;
import?javax.xml.transform.TransformerException;
import?javax.xml.transform.TransformerFactory;
import?javax.xml.transform.dom.DOMSource;
import?javax.xml.transform.stream.StreamResult;
import?org.w3c.dom.Document;
import?org.w3c.dom.Element;
public?class?DOMtest001?{
?public?static?void?main(String[]?args)?{
??//?TODO?Auto-generated?method?stub
??DOMtest001?d=new?DOMtest001();
??d.createXML();
?}
?public?void?createXML()
?{
??DocumentBuilderFactory?dbf=DocumentBuilderFactory.newInstance();
??try?{
???DocumentBuilder?db=dbf.newDocumentBuilder();
???Document?document=?db.newDocument();???//生成新的document。
???document.setXmlStandalone(true);
???Element?bookstore?=document.createElement("bookstore");
???Element?book=document.createElement("book");
???book.setAttribute("id",?"1");
???Element?name=document.createElement("name");
???name.setTextContent("小王子");
???bookstore.appendChild(name);
???//在bookstore節(jié)點(diǎn)中添加book節(jié)點(diǎn)??????誰(shuí)先添加?誰(shuí)是另一個(gè)子節(jié)點(diǎn)。
???bookstore.appendChild(book);
???bookstore.appendChild(bookstore);//加根節(jié)點(diǎn)
???
???TransformerFactory?tff=TransformerFactory.newInstance();
???try?{
????Transformer?tf=?tff.newTransformer();
????tf.setOutputProperty(OutputKeys.INDENT,?"yes");//換行操作
????try?{
?????tf.transform(new?DOMSource(document),?new?StreamResult(new?File("book.xml")));
????}?catch?(TransformerException?e)?{
?????//?TODO?Auto-generated?catch?block
?????e.printStackTrace();
????}
???}?catch?(TransformerConfigurationException?e)?{
????//?TODO?Auto-generated?catch?block
????e.printStackTrace();
???}
??}???catch?(ParserConfigurationException?e)?{
???//?TODO?Auto-generated?catch?block
???e.printStackTrace();
??}
?}
?
?
}
/*為什么運(yùn)行后就報(bào)這個(gè)錯(cuò)誤了?代碼里面并沒(méi)有報(bào)錯(cuò)
Exception?in?thread?"main"?org.w3c.dom.DOMException:?HIERARCHY_REQUEST_ERR:?An?attempt?was?made?to?insert?a?node?where?it?is?not?permitted.?
?at?com.sun.org.apache.xerces.internal.dom.ParentNode.internalInsertBefore(ParentNode.java:375)
?at?com.sun.org.apache.xerces.internal.dom.ParentNode.insertBefore(ParentNode.java:284)
?at?com.sun.org.apache.xerces.internal.dom.NodeImpl.appendChild(NodeImpl.java:235)
?at?DOMTest.DOMtest001.createXML(DOMtest001.java:42)
?at?DOMTest.DOMtest001.main(DOMtest001.java:24)*/
2016-12-01
36行bookstore.appendChild(bookstore);//加根節(jié)點(diǎn)應(yīng)該把bookstore節(jié)點(diǎn)放入dom中呀,改為document.appendChild(bookstore);//加根節(jié)點(diǎn)