标签:
这个类是在微软XML操作类库上进行的封装,只是为了更加简单使用,包括XML类创建节点的示例。
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; namespace testForm { class Operation_APPCFG { XmlDocument xmldoc; XmlNode xmlnode; XmlElement xmlelem; XmlDeclaration xmldecl; /// <summary> /// 构造函数 /// </summary> public Operation_APPCFG() { xmldoc = new XmlDocument(); } /// <summary> /// 创建XML文件的段落声明 /// </summary> /// <param name="strEncoding">XML编码方式,输入"gb2312"、"utf-8"</param> /// <param name="strStandalone">独立特性,输入"yes"、"no"或"null",默认为"null"</param> public void CreateDeclaration(string strEncoding,string strStandalone) { if ((strEncoding == null) || (strEncoding == "")) { strEncoding = null; } if ((strStandalone == null) || (strStandalone == "")) { strStandalone = null; } else { if (!strStandalone.Equals("yes") || !strStandalone.Equals("no")) { strStandalone = null; } } xmldecl = xmldoc.CreateXmlDeclaration("1.0", strEncoding, strStandalone); xmldoc.AppendChild(xmldecl); } /// <summary> /// 创建root元素 /// </summary> /// <param name="localName">root元素的名称</param> public void CreateElement(string localName) { xmlelem = xmldoc.CreateElement("", localName, ""); xmldoc.AppendChild(xmlelem); } /// <summary> /// 创建节点的子节点,模式 <Node subA="subA" subB="subB"></Node> /// </summary> /// <param name="parentName">父节点的名称</param> /// <param name="NodeName">节点的名称</param> /// <param name="hash">需创建的子节点的hashtable</param> public void CreateNodeModeA(string parentName, string NodeName, Hashtable hash) { XmlNode root = xmldoc.SelectSingleNode(parentName); XmlElement xe1 = xmldoc.CreateElement("Node");//创建一个<Node>节点 foreach (DictionaryEntry de in hash) { xe1.SetAttribute(de.Key.ToString(), de.Value.ToString());//设置该节点genre属性 //xe1.SetAttribute("ISBN", "2-3631-4"); } root.AppendChild(xe1); } /// <summary> /// 创建节点的子节点(泛型方法),模式 <Node subA="subA" subB="subB"></Node> /// </summary> /// <param name="parentName">父节点的名称</param> /// <param name="NodeName">节点的名称</param> /// <param name="hash">需创建的子节点的hashtable</param> public void CreateNodeModeB(string parentName,string NodeName, Dictionary<string, string> hash ) { XmlNode root = xmldoc.SelectSingleNode(parentName); XmlElement xe1 = xmldoc.CreateElement("Node");//创建一个<Node>节点 foreach (KeyValuePair<string, string> de in hash) { xe1.SetAttribute(de.Key.ToString(), de.Value.ToString());//设置该节点genre属性 //xe1.SetAttribute("ISBN", "2-3631-4"); } root.AppendChild(xe1); } /// <summary> /// 创建节点的子节点(泛型方法),模式 <title>入门到精通</title> /// </summary> /// <param name="NodeName">节点的名称</param> /// <param name="hash">需创建的子节点的hashtable</param> public void CreateNodeModeC(string parentName,Hashtable hash) { XmlNode root = xmldoc.SelectSingleNode(parentName); XmlElement xesub1; foreach (DictionaryEntry de in hash) { xesub1 = xmldoc.CreateElement(de.Key.ToString()); xesub1.InnerText = de.Value.ToString();//设置文本节点 root.AppendChild(xesub1); } } /// <summary> /// 保存文件 /// </summary> /// <param name="pathFile"></param> public void SaveFile(string pathFile) { xmldoc.Save(pathFile); } } }
下面是网上一位网友写的示例,参考意义相同,原文地址http://www.cnblogs.com/txw1958/archive/2013/01/16/csharp-xml.html
public void CreateFile() { //加入XML的声明段落,<?xml version="1.0" encoding="gb2312"?> XmlDeclaration xmldecl = xmldoc.CreateXmlDeclaration("1.0", null, null);//encoding mode:"gb2312"、"utf-8",也可以为null xmldoc.AppendChild(xmldecl); //加入一个根元素 xmlelem = xmldoc.CreateElement("", "configuration", ""); xmldoc.AppendChild(xmlelem); //加入另外一个元素 for (int i = 1; i < 3; i++) { XmlNode root = xmldoc.SelectSingleNode("Employees");//查找<Employees> XmlElement xe1 = xmldoc.CreateElement("Node");//创建一个<Node>节点 xe1.SetAttribute("genre", "DouCube");//设置该节点genre属性 xe1.SetAttribute("ISBN", "2-3631-4");//设置该节点ISBN属性 XmlElement xesub1 = xmldoc.CreateElement("title"); xesub1.InnerText = "CS从入门到精通";//设置文本节点 xe1.AppendChild(xesub1);//添加到<Node>节点中 XmlElement xesub2 = xmldoc.CreateElement("author"); xesub2.InnerText = "候捷"; xe1.AppendChild(xesub2); XmlElement xesub3 = xmldoc.CreateElement("price"); xesub3.InnerText = "58.3"; xe1.AppendChild(xesub3); root.AppendChild(xe1);//添加到<Employees>节点中 } //保存创建好的XML文档 xmldoc.Save("DB.cfg"); }
APP.config 本质上也是一个XML文件,下面是一些参考资料
http://www.cnblogs.com/zfanlong1314/p/3623622.html
https://msdn.microsoft.com/zh-cn/library/system.configuration.configuration(v=vs.80).aspx
http://www.cnblogs.com/bynet/archive/2010/06/10/1755721.html
其它参考资料
http://blog.csdn.net/albertliangyg/article/details/8633521
https://msdn.microsoft.com/zh-cn/library/system.text.encoding(v=vs.80).aspx
https://msdn.microsoft.com/zh-cn/library/system.xml.xmldocument.createelement(v=vs.100).aspx
https://msdn.microsoft.com/zh-cn/library/5tbh8a42
标签:
原文地址:http://www.cnblogs.com/hhhh2010/p/4643612.html