亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

換行但是沒有縮進。。。這個要怎么辦? 如何在已有的xml文件中,再加一個book子節點?

<?xml?version="1.0"?encoding="UTF-8"?>
<bookstore>
	<book?id="1">
		<name>冰與火之歌</name>
		<author>喬治馬丁</author>
		<language>English</language>
		<price>109.9</price>
	</book>
	<book??id="2">
		<name>安徒生童話</name>
		<author>安徒生</author>
		<language>Chinese</language>
		<price>59.0</price>
	</book>
</bookstore>



/*?想在上面的xml內容中在加入一個book子節點,我應該怎么做??*/


正在回答

5 回答

至于通過代碼增加結點,可以參照:http://www.xianlaiwan.cn/qadetail/66706

0 回復 有任何疑惑可以回復我~

@da丶萌萌噠

http://img1.sycdn.imooc.com//54eff32b00011f9804080059.jpg

如果是DOM4J的話,可以采用這種PrettyPrint

0 回復 有任何疑惑可以回復我~
#1

如果還可以

如果是DOM呢,該怎么縮進
2016-01-22 回復 有任何疑惑可以回復我~

@da丶萌萌噠

<?xml?version="1.0"?encoding="UTF-8"?>

<bookstore>

????<book?id="1">

????????<name>冰與火之歌</name>

????????<author>喬治馬丁</author>

????????<language>English</language>

????????<price>109.9</price>

????</book>

????<book??id="2">

????????<name>安徒生童話</name>

????????<author>安徒生</author>

????????<language>Chinese</language>

????????<price>59.0</price>

????</book>

????<book??id="3">

????????<name>第三本書</name>

????????<author>某某某</author>

????????<language>Chinese</language>

????????<price>444</price>

????</book>

</bookstore>

這樣就增加了一本書。

換行敲回車鍵,縮進的話敲空格或者tab鍵都可以哦~!


0 回復 有任何疑惑可以回復我~
package?com.imooc.domtest.test;

import?java.io.File;
import?java.io.FileOutputStream;
import?java.io.OutputStream;
import?java.util.ArrayList;
import?java.util.Scanner;

import?javax.xml.parsers.DocumentBuilder;
import?javax.xml.parsers.DocumentBuilderFactory;
import?javax.xml.parsers.ParserConfigurationException;
import?javax.xml.transform.OutputKeys;
import?javax.xml.transform.Result;
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?CreateXML?{

	public?DocumentBuilder?getDocumentBuilder(){
		//?創建一個DocumentBuilderFactory的對象
		DocumentBuilderFactory?dbf?=?DocumentBuilderFactory.newInstance();
		//?創建DocumentBuilder對象
		DocumentBuilder?db?=null;
		try?{
			db?=?dbf.newDocumentBuilder();
		}?catch?(ParserConfigurationException?e)?{
			e.printStackTrace();
		}
		return?db;
	}
	
	/**
	?*?生成xml
	?*/
	public?void?createXML(){
		Scanner?in?=new?Scanner(System.in);
		DocumentBuilder?db?=?getDocumentBuilder();
		Document?document?=?db.newDocument();
		document.setXmlStandalone(true);
		Element?bookstore?=?document.createElement("bookStore");
		System.out.print("創建多少本書?:");
		//向bookstore根節點中添加子節點book
		int?n=in.nextInt();
		for(int?i=0;i<n;i++){
			ArrayList<Element>?elements=new?ArrayList<Element>();
			Element?book?=?document.createElement("book");
			Element?name?=?document.createElement("name");
			Element?price?=?document.createElement("price");
			Element?language?=?document.createElement("language");
			Element?year?=?document.createElement("year");
			elements.add(name);
			elements.add(price);
			elements.add(language);
			elements.add(year);
	//		name.setNodeValue("小王子");
			System.out.println("---------第"+(i+1)+"本書--------");
			System.out.println("input?the?"+(i+1)+"?book?id");
			String?id=in.next();
			book.setAttribute("id",?id);
			for(int?j=0;j<elements.size();j++){
				System.out.println("input?the"+(i+1)+"?book?"+elements.get(j).getNodeName());
				String?str=in.next();
				elements.get(j).setTextContent(str);
				book.appendChild(elements.get(j));
			}
			//將book節點添加到bookstore根節點中
			bookstore.appendChild(book);
		}
		//將bookstore節點(已經包含了book)添加到dom樹中
		document.appendChild(bookstore);
		//創建TransformerFactory對象
		TransformerFactory?tff?=?TransformerFactory.newInstance();
		try?{
			//創建Transformer對象
			Transformer?tf?=?tff.newTransformer();
			tf.setOutputProperty(OutputKeys.INDENT,?"yes");
			tf.setOutputProperty("{http://xml.apache.org/xslt}indent-amount",?"4");
			tf.transform(new?DOMSource(document),new?StreamResult(new?File("books1.xml")));
		}?catch?(TransformerConfigurationException?e)?{
			e.printStackTrace();
		}?catch?(TransformerException?e)?{
			e.printStackTrace();
		}
	}
	
	public?static?void?main(String[]?args)?{
		CreateXML?creatXml?=?new?CreateXML();
		creatXml.createXML();
	}

}


0 回復 有任何疑惑可以回復我~

```

package com.imooc.domtest.test;


import java.io.File;

import java.io.FileOutputStream;

import java.io.OutputStream;

import java.util.ArrayList;

import java.util.Scanner;


import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import javax.xml.parsers.ParserConfigurationException;

import javax.xml.transform.OutputKeys;

import javax.xml.transform.Result;

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 CreateXML {


public DocumentBuilder getDocumentBuilder(){

// 創建一個DocumentBuilderFactory的對象

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

// 創建DocumentBuilder對象

DocumentBuilder db =null;

try {

db = dbf.newDocumentBuilder();

} catch (ParserConfigurationException e) {

e.printStackTrace();

}

return db;

}

/**

* 生成xml

*/

public void createXML(){

Scanner in =new Scanner(System.in);

DocumentBuilder db = getDocumentBuilder();

Document document = db.newDocument();

document.setXmlStandalone(true);

Element bookstore = document.createElement("bookStore");

System.out.print("創建多少本書?:");

//向bookstore根節點中添加子節點book

int n=in.nextInt();

for(int i=0;i<n;i++){

ArrayList<Element> elements=new ArrayList<Element>();

Element book = document.createElement("book");

Element name = document.createElement("name");

Element price = document.createElement("price");

Element language = document.createElement("language");

Element year = document.createElement("year");

elements.add(name);

elements.add(price);

elements.add(language);

elements.add(year);

// name.setNodeValue("小王子");

System.out.println("---------第"+(i+1)+"本書--------");

System.out.println("input the "+(i+1)+" book id");

String id=in.next();

book.setAttribute("id", id);

for(int j=0;j<elements.size();j++){

System.out.println("input the"+(i+1)+" book "+elements.get(j).getNodeName());

String str=in.next();

elements.get(j).setTextContent(str);

book.appendChild(elements.get(j));

}

//將book節點添加到bookstore根節點中

bookstore.appendChild(book);

}

//將bookstore節點(已經包含了book)添加到dom樹中

document.appendChild(bookstore);

//創建TransformerFactory對象

TransformerFactory tff = TransformerFactory.newInstance();

try {

//創建Transformer對象

Transformer tf = tff.newTransformer();

tf.setOutputProperty(OutputKeys.INDENT, "yes");

tf.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");

tf.transform(new DOMSource(document),new StreamResult(new File("books1.xml")));

} catch (TransformerConfigurationException e) {

e.printStackTrace();

} catch (TransformerException e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

CreateXML creatXml = new CreateXML();

creatXml.createXML();

}


}

```

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

換行但是沒有縮進。。。這個要怎么辦? 如何在已有的xml文件中,再加一個book子節點?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號