android手机端保存xml数据

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

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