public void createXML(){ DocumentBuilder db =getDocumentBuilder(); Document document=db.newDocument(); document.setXmlStandalone(true); Element bookstore=document.createElement("bookStore"); //向bookstore根节点中添加子节点book Element book=document.createElement("book"); Element book2=document.createElement("book"); Element name =document.createElement("name"); name.setTextContent("小王子"); book.appendChild(name); Element author=document.createElement("author"); author.setTextContent("乔治马丁"); book.appendChild(author); Element year=document.createElement("year"); author.setTextContent("hhhh"); book.appendChild(year); Element language=document.createElement("language"); author.setTextContent("English"); book.appendChild(language); //向book节点添加属性 book.setAttribute("id", "1"); book2.setAttribute("id", "2"); //将book节点添加到bookstore根节点中 bookstore.appendChild(book); bookstore.appendChild(book2); //将bookstore节点(已经包含了book)添加到dom树中 document.appendChild(bookstore); //创建TransformerFactory对象 TransformerFactory tff=TransformerFactory.newInstance(); try { //创建Transformer对象 Transformer tf=tff.newTransformer(); tf.setOutputProperty(OutputKeys.INDENT, "yes"); tf.transform(new DOMSource(document), new StreamResult(new File("bookstore1.xml"))); } catch (TransformerConfigurationException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } catch (TransformerException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } }
为什么我生成的XML文件不对 上边代码写的不对吗 试了好几遍都是下面这样的结果
<?xml version="1.0" encoding="UTF-8"?><bookStore>
<book id="1">
<name>小王子</name>
<author>English</author>
<year/>
<language/>
</book>
<book id="2"/>
</bookStore>
21,26行的 author.setTextContent(""); 是直接复制粘贴的吧,auther 没改过来