这个类是在微软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 = ; i < ; 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

XML文件操作类--创建XML文件的更多相关文章

  1. PHP 文件操作类(创建文件并写入) 生成日志

    <?php /** * 文件操作(生成日志)支持多条插入 * (假设插入多条语句并换行 用','逗号分开) * */ class log { public $path = './info.txt ...

  2. (Unity)XML文件读写与IO文件操作类使用介绍

    using System.Xml;                //xml文件操作命名空间 #region 写入操作 void WriteXMLFile(string _fileName) { Xm ...

  3. Dom4j解析Xml文件,Dom4j创建Xml文件

    Dom4j解析Xml文件,Dom4j创建Xml文件 >>>>>>>>>>>>>>>>>>&g ...

  4. Xml通用操作类

    using System; using System.Collections.Generic; using System.IO; using System.Text; using System.Xml ...

  5. [C#] 常用工具类——文件操作类

    /// <para> FilesUpload:工具方法:ASP.NET上传文件的方法</para> /// <para> FileExists:返回文件是否存在&l ...

  6. asp.net文件操作类

    /** 文件操作类 **/ #region 引用命名空间 using System; using System.Collections.Generic; using System.Text; usin ...

  7. C# 文件操作类大全

      C# 文件操作类大全 时间:2015-01-31 16:04:20      阅读:1724      评论:0      收藏:0      [点我收藏+] 标签: 1.创建文件夹 //usin ...

  8. File 文件操作类 大全

    File  文件操作类  大全 许多人都会对文件操作感到很难  我也是  但是一个好的项目中必定会涉及到文件操作的 文件的复制 粘贴  等等等 公司大佬写了 一个文件操作的工具类 感觉还是棒棒的啦   ...

  9. Java文件操作类效率对比

    前言 众所周知,Java中有多种针对文件的操作类,以面向字节流和字符流可分为两大类,这里以写入为例: 面向字节流的:FileOutputStream 和 BufferedOutputStream 面向 ...

随机推荐

  1. javascript中的继承实现

    javascript虽然是一门面向对象的语言,但是它的继承机制从一开始设计的时候就不同于传统的其他面向对象语言,是基于原型的继承机制,但是在这种机制下,继承依然有一些不同的实现方式. 方法一:类式继承 ...

  2. DebugDiag收集Dump的使用说明

    DebugDiag简介 Debug Diagnostic Tool (DebugDiag)是微软提供的工具,可以用来追踪windows平台下的程序崩溃,卡死,内存泄漏等一些疑难问题的原因,按照问题类别 ...

  3. 转(linux shell)(2)

      http://oldboy.blog.51cto.com/2561410/1665163 1.按单词出现频率降序排序! 2.按字母出现频率降序排序! the squid project provi ...

  4. 运行ASP程序报错

    错误提示: An error occurred on the server when processing the URL. Please contact the system administrat ...

  5. 【extjs】 Extjs中的Ext.grid.Panel隐藏列会显示在表头中解决方法

    在Extjs中的GridPanel会有这样的情况,隐藏列会显示在menuDisabled中,但是这个一般没有什么用处,只是用于后台取值的作用,感兴趣的朋友可以了解下啊,希望本文对你有所帮助   在Ex ...

  6. linux 编译安装nginx,配置自启动脚本

    本文章来给各位同学介绍一篇关于linux 编译安装nginx,配置自启动脚本教程,希望有需要了解的朋友可一起来学习学习哦. 在公司的suse服务器装nginx,记录下安装过程: 参照这篇文章:Linu ...

  7. [原]在Fedora 20环境下安装系统内核源代码

    1.安装Kernel Headers(头文件) 通过安装kernel-devel RPM包就可以得到Kernel Headers,但默认情况下没有被Fedora 20安装.通过DVD ISO 或者 y ...

  8. bzoj1966: [Ahoi2005]VIRUS 病毒检测

    Description 科学家们在Samuel星球上的探险仍在继续.非常幸运的,在Samuel星球的南极附近,探险机器人发现了一个巨大的冰湖!机器人在这个冰湖中搜集到了许多RNA片段运回了实验基地.科 ...

  9. bzoj3743 Kamp

    Description 一颗树n个点,n-1条边,经过每条边都要花费一定的时间,任意两个点都是联通的. 有K个人(分布在K个不同的点)要集中到一个点举行聚会. 聚会结束后需要一辆车从举行聚会的这点出发 ...

  10. 使用express搭建第一个Web应用【Node.js初学】

    来源:http://jingyan.baidu.com/article/bad08e1ee501e009c8512106.html express是一个开源的node.js项目框架,初学者使用expr ...