问答详情
源自:2-3 生成节点间的文本

添加子节点出现问题

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>


提问者:驴霸天下 2017-01-19 19:06

个回答

  • 慕的地2471922
    2017-01-19 19:28:44
    已采纳

    21,26行的 author.setTextContent(""); 是直接复制粘贴的吧,auther 没改过来