android手机端保存xml数据

1、前面写的这个不能继续插入数据,今天补上,当文件不存在的时候就创建,存在就直接往里面添加数据。

2、代码如下:
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")
				+ "----------");
	}

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值