[java]
1、前面寫的這個不能繼續插入數據,今天補上,當文件不存在的時候就創建,存在就直接往裡面添加數據。
[java]
[java]
2、代碼如下:
[java]
<pre name="code" class="java">package com.mqp.doc2xml;
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
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.omg.CORBA.Environment;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Text;
import org.xml.sax.SAXException;
/**
*
* 將配置中的數據保存在本地XML文件中
*
* @author Administrator
*
*/
// 使用Dom方式來保存數據
public class Doc2Xml {
public static boolean saveParam2Xml(String ip_value, String socket_value) {
// 文檔生成器工廠
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// 實例化文檔生成器
try {
DocumentBuilder builder = factory.newDocumentBuilder();
File f = new File("../Test/xml/text.xml");
if (!f.exists()) {
System.out.println("=======");
f.createNewFile();
// 生成一個文檔
Document document = builder.newDocument();
// 創建根節點
Element configs = document.createElement("configs");
// 創建XML文件所需的各種對象並序列化(元素)
Element config = document.createElement("config");// 創建元素節點
Element ip = document.createElement("ip");
Element socket = document.createElement("socket");
Text ip_text = document.createTextNode(ip_value);// 創建text文本
Text socket_text = document.createTextNode(socket_value);
ip.appendChild(ip_text);
socket.appendChild(socket_text);
config.appendChild(ip);
config.appendChild(socket);
configs.appendChild(config);
document.appendChild(configs);// 添加到文檔中
// 調用方法,將文檔寫入xml文件中
return Doc2Xml.write2Xml(document, f);
} else {
// 解析文檔
Document document = builder.parse(f);
Element configs = document.getDocumentElement();// 得到根節點,把後面創建的子節點加入這個跟節點中
// 創建XML文件所需的各種對象並序列化(元素)
Element config = document.createElement("config");// 創建元素節點
Element ip = document.createElement("ip");
Element socket = document.createElement("socket");
Text ip_text = document.createTextNode(ip_value);// 創建text
Text socket_text = document.createTextNode(socket_value);
ip.appendChild(ip_text);
socket.appendChild(socket_text);
config.appendChild(ip);
config.appendChild(socket);
configs.appendChild(config);// 添加到根節點中
// 調用方法,將文檔寫入xml文件中
return Doc2Xml.write2Xml(document, f);
}
} catch (ParserConfigurationException e) {
e.printStackTrace();
return false;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
public static boolean write2Xml(Document document, File file) {
// 創建轉化工廠
TransformerFactory factory = TransformerFactory.newInstance();
// 創建轉換實例
try {
Transformer transformer = factory.newTransformer();
// 將建立好的DOM放入DOM源中
DOMSource domSource = new DOMSource(document);
// 創建輸出流
StreamResult result = new StreamResult(file);
// 開始轉換
transformer.transform(domSource, result);
return true;
} catch (TransformerConfigurationException e) {
e.printStackTrace();
return false;
} catch (TransformerException e) {
e.printStackTrace();
return false;
}
}
public static void main(String[] args) {
System.out.println(Doc2Xml.saveParam2Xml("10.1.23.2", "8888")
+ "----------");
}
}
</pre><br><br>