1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Xml;
  6.  
  7. using System.IO;
  8. using System.Windows.Forms;
  9.  
  10. namespace MyVertion
  11. {
  12. class XMLOperate
  13. {
  14. private string m_configPath = Application.StartupPath + @"\DatabaseConfig.xml";
  15. private string vertion = "1.0";
  16. private string encoding = "UTF-8";
  17. private string standalone = "no";
  18. private string comment = "Database Config";
  19.  
  20. private XmlDocument xmlDoc = null;
  21.  
  22. private static volatile XMLOperate XmlOp = null;
  23. public static XMLOperate GetInstance()
  24. {
  25. if (null == XmlOp)
  26. {
  27. XmlOp = new XMLOperate(null);
  28. }
  29. return XmlOp;
  30. }
  31.  
  32. public string _Vertion
  33. {
  34. set
  35. {
  36. vertion = value;
  37. }
  38.  
  39. get
  40. {
  41. return vertion;
  42. }
  43. }
  44.  
  45. public string _Encoding
  46. {
  47. set
  48. {
  49. encoding = value;
  50. }
  51.  
  52. get
  53. {
  54. return encoding;
  55. }
  56. }
  57.  
  58. public string _Standalone
  59. {
  60. set
  61. {
  62. standalone = value;
  63. }
  64.  
  65. get
  66. {
  67. return standalone;
  68. }
  69. }
  70.  
  71. public string _Comment
  72. {
  73. set
  74. {
  75. comment = value;
  76. }
  77.  
  78. get
  79. {
  80. return comment;
  81. }
  82. }
  83.  
  84. public string _ConfigPath
  85. {
  86. get
  87. {
  88. return m_configPath;
  89. }
  90. }
  91.  
  92. #region 构造函数
  93. public XMLOperate(string xmlPath)
  94. {
  95. if (!string.IsNullOrEmpty(xmlPath))
  96. {
  97. m_configPath = xmlPath;
  98. }
  99. xmlDoc = new XmlDocument();
  100. }
  101. #endregion
  102.  
  103. //创建configxml文件
  104. public void CreateConfigXml()
  105. {
  106. xmlDoc.CreateXmlDeclaration(vertion, encoding, standalone);
  107. xmlDoc.CreateComment(comment);
  108.  
  109. XmlElement rootEle = xmlDoc.CreateElement("Connection");
  110. xmlDoc.AppendChild(rootEle);
  111.  
  112. XmlElement ele = xmlDoc.CreateElement("Server");
  113. rootEle.AppendChild(ele);
  114. ele = xmlDoc.CreateElement("Instance");
  115. rootEle.AppendChild(ele);
  116. ele = xmlDoc.CreateElement("Database");
  117. rootEle.AppendChild(ele);
  118. ele = xmlDoc.CreateElement("UserName");
  119. rootEle.AppendChild(ele);
  120. //ele = xmlDoc.CreateElement("Password");
  121. //rootEle.AppendChild(ele);
  122. ele = xmlDoc.CreateElement("Vertion");
  123. rootEle.AppendChild(ele);
  124.  
  125. xmlDoc.Save(m_configPath);
  126.  
  127. //加入XML的声明段落,<?xml version="1.0" encoding="utf-8"?>
  128. // xmlDoc.LoadXml(@"<?xml version=""1.0"" encoding=""utf-8""?>
  129. // <Connection>
  130. // </Connection>");
  131. // XmlNode root = xmlDoc.SelectSingleNode("Connection");
  132. }
  133.  
  134. //检查配置文件是否存在
  135. public bool IsExist()
  136. {
  137. return File.Exists(m_configPath);
  138. }
  139.  
  140. //保存、更改xml文件
  141. public bool UpdateConfigInfo(string server, string instance, string database, string username, string password, string version)
  142. {
  143. if (!IsExist())
  144. {
  145. return false;
  146. }
  147. XmlNode root = xmlDoc.SelectSingleNode("Connection");
  148. XmlNode xnd = root.SelectSingleNode("Server");
  149. xnd.InnerText = server;
  150. xnd = root.SelectSingleNode("Instance");
  151. xnd.InnerText = instance;
  152. xnd = root.SelectSingleNode("Database");
  153. xnd.InnerText = database;
  154. xnd = root.SelectSingleNode("UserName");
  155. xnd.InnerText = username;
  156. //xnd = root.SelectSingleNode("Password");
  157. //xnd.InnerText = password;
  158. xnd = root.SelectSingleNode("Vertion");
  159. if (!string.IsNullOrEmpty(version))
  160. {
  161. xnd.InnerText = version;
  162. }
  163.  
  164. xmlDoc.Save(m_configPath);
  165. return true;
  166. }
  167.  
  168. /// <summary>
  169. /// 读配置文件
  170. /// </summary>
  171. /// <returns></returns>
  172. public string ReadConfigInfo(string item)
  173. {
  174. if (!IsExist())
  175. {
  176. //MessageBox.Show("配置文件不存在!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  177. return null;
  178. }
  179. else
  180. {
  181. xmlDoc.Load(m_configPath);
  182. XmlNode root = xmlDoc.SelectSingleNode("Connection");
  183. XmlNode xnd = root.SelectSingleNode(item);
  184. return xnd.InnerText;
  185. }
  186.  
  187. }
  188.  
  189. }
  190. }

更多:https://i.cnblogs.com/EditPosts.aspx?postid=3673943

C#:XML操作(简单)的更多相关文章

  1. Linq对XML的简单操作

    前两章介绍了关于Linq创建.解析SOAP格式的XML,在实际运用中,可能会对xml进行一些其它的操作,比如基础的增删该查,而操作对象首先需要获取对象,针对于DOM操作来说,Linq确实方便了不少,如 ...

  2. XML系列之--对电文格式XML的简单操作(三)

    前两章介绍了关于Linq创建.解析SOAP格式的XML,在实际运用中,可能会对xml进行一些其它的操作,比如基础的增删该查,而操作对象首先需要获取对象,针对于DOM操作来说,Linq确实方便了不少,如 ...

  3. 简单的XML操作类

    /// <summary> /// XmlHelper 的摘要说明. /// xml操作类 /// </summary> public class XmlHelper { pr ...

  4. T-Sql(五)xml操作

    t-sql中的xml操作在我们平时做项目的过程中用的很少,因为我们处理的数据量很少,除非一些用到xml的地方,t-sql中xml操作一般用在数据量很大,性能优化的地方,当然我在平时做项目的时候也是没用 ...

  5. 【Java EE 学习 33 上】【JQuery样式操作】【JQuery中的Ajax操作】【JQuery中的XML操作】

    一.JQuery中样式的操作 1.给id=mover的div采用属性增加样式.one $("#b1").click(function(){ $("#mover" ...

  6. .net学习笔记---xml操作及读写

    一.XML文件操作中与.Net中对应的类 微软的.NET框架在System.xml命名空间提供了一系列的类用于Dom的实现. 以下给出XML文档的组成部分对应.NET中的类: XML文档组成部分 对应 ...

  7. xml操作

    一.LINQ to XML 编程基础 1.LINQ to XML类 System.Xml.Linq命名空间含有19个类,下表列出了它们的名称及其描述: 类 描述 XAttribute 表示一个 XML ...

  8. .Net XML操作 <第二篇>

    一.XML文件操作中与.Net中对应的类 微软的.NET框架在System.xml命名空间提供了一系列的类用于Dom的实现. 以下给出XML文档的组成部分对应.NET中的类: XML文档组成部分 对应 ...

  9. 【转】python XML 操作总结(创建、保存和删除,支持utf-8和gb2312)

    原文地址:http://hi.baidu.com/tbjmnvbagkfgike/item/6743ab10af43bb24f6625cc5 最近写程序需要用到xml操作,看了看python.org上 ...

  10. PHP XML操作的各种方法解析

    PHP提供了一整套的读取 XML文件的方法,很容易的就可以编写基于 XML的脚本程序.本章将要介绍 PHP与 XML的操作方法,并对几个常用的 XML类库做一些简要介绍. XML是一种流行的半结构化文 ...

随机推荐

  1. Object-C—集合

    Obejct-C中包含了三种集合,分别是:数组.字典和集(set).       数组和C语言中的数组相似,但是OC中的数组只能存储对象,不能存储基本数据类型,如int.float.enum.stru ...

  2. ViewStub用法

    在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局.那么最通常的想法就是把可能用到的View都写在上面,先把它们的可见性都设为View.GONE,然后在 ...

  3. jquery省市选择案例

    1.代码实例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  4. Java效率工具之Lombok

    参考: http://www.54tianzhisheng.cn/2018/01/09/lombok/ https://zhuanlan.zhihu.com/p/32779910

  5. jenkins中“Poll SCM”和“Build periodically”的区别

    Poll SCM:定时检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作.我的配置如下: */5 * * * *  (每5分钟检查一次源码变化) B ...

  6. 4 cocos2dx 3.0 源码分析- scheduler

    scheduler 这个类, 负责了引擎的自定义更新, 及定时更新相关的操作, 看看下面的代码,很熟悉吧.   schedule(schedule_selector(HelloWorld::updat ...

  7. 集成禅道和svn

    转载:http://www.zentao.net/book/zentaopmshelp/137.html 说明:svn集成功能配置会比较复杂,我们会尽量通过文档来帮助大家配置成功!如果实在配置不成功的 ...

  8. ansible安装文档

    一.系统环境 [root@ansible ~]# cat /etc/redhat-release CentOS release 6.6 (Final) [root@ansible ~]# uname ...

  9. hadoop常见问题总结1

    本文地址:http://www.cnblogs.com/archimedes/p/hadoop-problem1.html,转载请注明源地址. 问题1:http://localhost:50030 H ...

  10. VMWARE虚拟机安装64位系统此主机支持IntelVTx 但IntelVTx处于禁用状态

    1.进入BIOS(我的电脑是Thinkpad e480,进入按钮是F12/ Fn+F12) 2.选择App Menu,再选择第一项Setup,进入 3.选择Security,选择下面第四项Virtua ...