android手机端保存xml数据

[java] view plaincopy
 
  1. 1、前面写的这个不能继续插入数据,今天补上,当文件不存在的时候就创建,存在就直接往里面添加数据。  
[java] view plaincopy
 
  1.   
[java] view plaincopy
 
  1. 2、代码如下:  
[java] view plaincopy
 
  1. <pre name="code" class="java">package com.mqp.doc2xml;  
  2.   
  3. import java.io.File;  
  4. import java.io.IOException;  
  5.   
  6. import javax.xml.parsers.DocumentBuilder;  
  7. import javax.xml.parsers.DocumentBuilderFactory;  
  8. import javax.xml.parsers.ParserConfigurationException;  
  9. import javax.xml.transform.Transformer;  
  10. import javax.xml.transform.TransformerConfigurationException;  
  11. import javax.xml.transform.TransformerException;  
  12. import javax.xml.transform.TransformerFactory;  
  13. import javax.xml.transform.dom.DOMSource;  
  14. import javax.xml.transform.stream.StreamResult;  
  15.   
  16. import org.omg.CORBA.Environment;  
  17. import org.w3c.dom.Document;  
  18. import org.w3c.dom.Element;  
  19. import org.w3c.dom.Text;  
  20. import org.xml.sax.SAXException;  
  21.   
  22. /** 
  23.  *  
  24.  * 将配置中的数据保存在本地XML文件中 
  25.  *  
  26.  * @author Administrator 
  27.  *  
  28.  */  
  29.   
  30. // 使用Dom方式来保存数据  
  31. public class Doc2Xml {  
  32.   
  33.     public static boolean saveParam2Xml(String ip_value, String socket_value) {  
  34.   
  35.         // 文档生成器工厂  
  36.         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();  
  37.   
  38.         // 实例化文档生成器  
  39.         try {  
  40.             DocumentBuilder builder = factory.newDocumentBuilder();  
  41.   
  42.             File f = new File("../Test/xml/text.xml");  
  43.             if (!f.exists()) {  
  44.                 System.out.println("=======");  
  45.   
  46.                 f.createNewFile();  
  47.   
  48.                 // 生成一个文档  
  49.                 Document document = builder.newDocument();  
  50.   
  51.                 // 创建根节点  
  52.                 Element configs = document.createElement("configs");  
  53.   
  54.                 // 创建XML文件所需的各种对象并序列化(元素)  
  55.                 Element config = document.createElement("config");// 创建元素节点  
  56.   
  57.                 Element ip = document.createElement("ip");  
  58.                 Element socket = document.createElement("socket");  
  59.   
  60.                 Text ip_text = document.createTextNode(ip_value);// 创建text文本  
  61.                 Text socket_text = document.createTextNode(socket_value);  
  62.   
  63.                 ip.appendChild(ip_text);  
  64.                 socket.appendChild(socket_text);  
  65.   
  66.                 config.appendChild(ip);  
  67.                 config.appendChild(socket);  
  68.   
  69.                 configs.appendChild(config);  
  70.   
  71.                 document.appendChild(configs);// 添加到文档中  
  72.   
  73.                 // 调用方法,将文档写入xml文件中  
  74.                 return Doc2Xml.write2Xml(document, f);  
  75.             } else {  
  76.   
  77.                 // 解析文档  
  78.                 Document document = builder.parse(f);  
  79.                 Element configs = document.getDocumentElement();// 得到根节点,把后面创建的子节点加入这个跟节点中  
  80.   
  81.                 // 创建XML文件所需的各种对象并序列化(元素)  
  82.                 Element config = document.createElement("config");// 创建元素节点  
  83.   
  84.                 Element ip = document.createElement("ip");  
  85.                 Element socket = document.createElement("socket");  
  86.   
  87.                 Text ip_text = document.createTextNode(ip_value);// 创建text  
  88.                 Text socket_text = document.createTextNode(socket_value);  
  89.   
  90.                 ip.appendChild(ip_text);  
  91.                 socket.appendChild(socket_text);  
  92.   
  93.                 config.appendChild(ip);  
  94.                 config.appendChild(socket);  
  95.   
  96.                 configs.appendChild(config);// 添加到根节点中  
  97.   
  98.                 // 调用方法,将文档写入xml文件中  
  99.                 return Doc2Xml.write2Xml(document, f);  
  100.             }  
  101.   
  102.         } catch (ParserConfigurationException e) {  
  103.             e.printStackTrace();  
  104.   
  105.             return false;  
  106.         } catch (IOException e) {  
  107.             // TODO Auto-generated catch block  
  108.             e.printStackTrace();  
  109.         } catch (SAXException e) {  
  110.             // TODO Auto-generated catch block  
  111.             e.printStackTrace();  
  112.         }  
  113.         return false;  
  114.   
  115.     }  
  116.   
  117.     public static boolean write2Xml(Document document, File file) {  
  118.         // 创建转化工厂  
  119.         TransformerFactory factory = TransformerFactory.newInstance();  
  120.         // 创建转换实例  
  121.         try {  
  122.             Transformer transformer = factory.newTransformer();  
  123.   
  124.             // 将建立好的DOM放入DOM源中  
  125.             DOMSource domSource = new DOMSource(document);  
  126.   
  127.             // 创建输出流  
  128.             StreamResult result = new StreamResult(file);  
  129.   
  130.             // 开始转换  
  131.             transformer.transform(domSource, result);  
  132.   
  133.             return true;  
  134.   
  135.         } catch (TransformerConfigurationException e) {  
  136.             e.printStackTrace();  
  137.   
  138.             return false;  
  139.         } catch (TransformerException e) {  
  140.             e.printStackTrace();  
  141.   
  142.             return false;  
  143.         }  
  144.     }  
  145.   
  146.     public static void main(String[] args) {  
  147.         System.out.println(Doc2Xml.saveParam2Xml("10.1.23.2", "8888")  
  148.                 + "----------");  
  149.     }  
  150.   
  151. }  
  152. </pre><br><br>  
 

http://blog.csdn.net/maqipei/article/details/12052115

原文地址:https://www.cnblogs.com/daishuguang/p/3857315.html