APP.config是一个典型的XML文件

打开vs2008在项目上右键-添加-新建项

选择应用程序配置文件,默认名称为APP.config,新建打开后默认代码如下

<?xml version="1.0" encoding="utf-8"?>
<configuration>
</configuration>

所有的代码都要写在<configuration>     </configuration>之间

C#空间要引入using System.Configuration;

1、appSettings配置节

 <appSettings>
<add key="key1" value="value1" />
<add key="key2" value="value2" />
</appSettings>

C#读取appSettings配置节

using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration; namespace xml
{
class Program
{
static void Main(string[] args)
{
string str = ConfigurationSettings.AppSettings["key1"];//过时
        string str= ConfigurationManager.AppSettings["key1"];
  Console.WriteLine(str);
Console.ReadLine();
}
}
}

运行结果

作用:可以在程序安装好后通过修改appConfig改变字符串的值,达到某些目的

2、applicationSettings配置节

 <applicationSettings>

    <WinService>

        <setting name="WinService_Login" serializeAs="String">

            <value>http://192.168.208.65:6888/abc/mm</value>

        </setting>

    </WinService>

</applicationSettings>      

C#读取applicationSettings配置节

 string sUrl =  MyProject .Properties.Settings.Default. WebSrv ; 

applicationSettings配置节和appSettings配置节同一个效果都是读取值

用appSettings读取方式,需要手动添加app.config内容(appSettings字段),
而且使用ConfigurationManager时要加上 using System.Configuration; 同时添加System.Configuration.dll引用
还有一点就是应用程序目录必须存在MyProject.exe.config文件,否则exe会打不开!
 
使用applicationSettings的优点是直接可以在Settings界面中编辑内容,还可以构建和测试connectionString字段, 参数配置更直观.
应用程序目录不必一定要有MyProject.exe.config文件,如果没有该文件,读出的值是编译时设置的值,否则读取该文件中的值.

3、connectionStrings配置节

如果无法读取文件需要再VS中添加引用 System.configuration.dll,否则不能使用ConfigurationManager这个类.

  <connectionStrings>
<!-- Oracle 连接-->
<add name="connectionName" connectionString="data source=orcl;persist security info=True;user id=用户名;password=密码;"></add>
</connectionStrings>

读取connectionStrings

string connectionString = ConfigurationManager.ConnectionStrings[connectionName].ConnectionString.ToString(); 

DataTable与XML转换

#region 将datatable解析成xml的方法

        public static string DataTable2XML(DataTable table)
{
MemoryStream stream = new MemoryStream();
XmlTextWriter writer = new XmlTextWriter(stream, Encoding.UTF8);
writer.Formatting = Formatting.Indented;
writer.Indentation = ; writer.WriteStartDocument(); writer.WriteStartElement("table"); writer.WriteStartElement("rowCount");
writer.WriteString(table.Rows.Count.ToString());
writer.WriteEndElement();//endrowcount writer.WriteStartElement("headCount");
writer.WriteString(table.Columns.Count.ToString());
writer.WriteEndElement();//endheadcount writer.WriteStartElement("head");
int hn = ;
foreach (DataColumn col in table.Columns)
{
writer.WriteStartElement("h" + hn.ToString());
writer.WriteString(col.ColumnName.ToString());
writer.WriteEndElement();//endhn
hn++;
}
writer.WriteEndElement();//endhead writer.WriteStartElement("body");
int rn = ;
foreach (DataRow row in table.Rows)
{
writer.WriteStartElement("r" + rn.ToString());
for (int cn = ; cn < table.Columns.Count + ; cn++)
{
writer.WriteStartElement("r" + rn.ToString() + "c" + cn.ToString());
writer.WriteString(row[cn - ].ToString());
writer.WriteEndElement();//endrncn
}
writer.WriteEndElement();//endrn
rn++;
} writer.WriteEndElement();//endbody
writer.WriteEndElement();//endtable writer.Flush(); stream.Position = ;
StreamReader reader = new StreamReader(stream);
string ret = reader.ReadToEnd();
//SaveXMLFile(ret);
writer.Close();
return ret;
} #endregion
  #region 解析xml文件到内存datatable
private DataTable XML2DataTable(string xml)
{
int rowCount, headCount;
DataTable table = new DataTable(); //XmlDocument doc = new XmlDocument();
//string xmlContent = File.ReadAllText(@"c:\物料(1).txt", Encoding.Default);
//doc.LoadXml(xmlContent);
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
SaveXMLFile(doc);
foreach (XmlNode nodeDoc in doc.ChildNodes)
{
if (nodeDoc.Name.Equals("table"))
{
foreach (XmlNode nodeTableChild in nodeDoc.ChildNodes)
{
if (nodeTableChild.Name.Equals("rowCount"))
{
Console.WriteLine(nodeTableChild.InnerText);
rowCount = Convert.ToInt32(nodeTableChild.InnerText);
}
if (nodeTableChild.Name.Equals("headCount"))
{
Console.WriteLine(nodeTableChild.InnerText);
headCount = Convert.ToInt32(nodeTableChild.InnerText);
}
if (nodeTableChild.Name.Equals("head"))
{
foreach (XmlNode nodeHeadChild in nodeTableChild.ChildNodes)
{
Console.WriteLine(nodeHeadChild.InnerText);
table.Columns.Add(nodeHeadChild.InnerText);
}
}
if (nodeTableChild.Name.Equals("body"))
{
foreach (XmlNode nodeBodyChild in nodeTableChild.ChildNodes)
{
if (!nodeBodyChild.Name.Contains("c"))
{
Console.WriteLine(nodeBodyChild.Name);
DataRow row = table.NewRow();
for (int i = ; i < table.Columns.Count; i++)
{
Console.WriteLine(nodeBodyChild.ChildNodes[i].InnerText);
row[i] = nodeBodyChild.ChildNodes[i].InnerText;
}
table.Rows.Add(row);
}
}
}
}
}
}
if (table.Rows.Count == )
{
throw new Exception("xml中没有包含任何数据!");
}
return table;
} private void SaveXMLFile(XmlDocument doc)
{
string path = Server.MapPath("") + "\\XML";
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
string fileName = path + "\\E2M_" + Guid.NewGuid().ToString() + ".xml";
fileName = fileName.Replace('-', '_');
doc.Save(fileName);
}
#endregion

(23)C#XML操作的更多相关文章

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

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

  2. LINQ系列:LINQ to XML操作

    LINQ to XML操作XML文件的方法,如创建XML文件.添加新的元素到XML文件中.修改XML文件中的元素.删除XML文件中的元素等. 1. 创建XML文件 string xmlFilePath ...

  3. T-Sql(五)xml操作

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

  4. XML格式示例 与 XML操作(读取)类封装

    header('Content-Type: text/xml'); <?xml version="1.0" encoding="utf-8" standa ...

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

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

  6. 简单的XML操作类

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

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

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

  8. C#常用操作类库三(XML操作类)

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

  9. php xml 操作。

    参考 文章:http://www.cnblogs.com/zcy_soft/archive/2011/01/26/1945482.html DOMDocument相关的内容. 属性: Attribut ...

随机推荐

  1. jquery取值赋值

    ("#A").val("1") id为A的值就是1了 jQuery中都这样,赋值的时候作为参数传给函数,和单纯的js有区别,像 $("#A" ...

  2. JavaWeb项目中使用ajax上传文件

    1.jsp $("#cxsc").click(function(){ var bankId = $("#bankId").val(); var formdata ...

  3. (原)UE4.20 自定义编辑器 - 基础(一)创建编辑器模块

            @author:白袍小道 前言: 本小文参考了UnrealC++,游戏编辑器(应该都找不到了嘿嘿)等书籍. 引擎基于UnrealEngine4.20版本(由于UnrealC++ 用的是 ...

  4. Spring Cloud Config 搭建Config 服务

    配置中心: open API 配置生效监控 一致性的K-V存储 统一配置的实时推送 配置全局恢复.备份.历史版本 高可用集群 通过config 获取配置,流程: 下面介绍,基于spring cloud ...

  5. PHP实现RSA签名生成订单功能【支付宝示例】

    //组合签名 $a=time(); $b=substr($a, 1); //生成随机订单号 $orderid= $b.mt_rand(10000,99999); //合作身份者id,以2088开头的1 ...

  6. 使用awk根据多维度统计系统tps

    业务简单日志格式: [2017-08-28 01:00:00.523]transfer_search,7001045,1708271100083774377,20170827,,,,,,,,,,001 ...

  7. WebStrom Sass 编译配置 windows

    第一步: 先安装Ruby下载 一路next 安装完成后打开开始菜单 打开后输入 gem install sass sass -v 出现版本号说明成功 第二部配置webstorm 在webstorm中s ...

  8. 如何写出高质量的JavaScript代码

    优秀的Stoyan Stefanov在他的新书中(<Javascript Patterns>)介绍了很多编写高质量代码的技巧,比如避免使用全局变量,使用单一的var关键字,循环式预存长度等 ...

  9. 《R语言实战》读书笔记--学习张丹日志

    从张丹的日志(http://blog.fens.me/rhadoop-r-basic/)中第九条对象看到R对象的几个总结: 1.内在属性 mode length 所有对象都有的属性 2.外部属性 at ...

  10. Codeforces Round #522 (Div. 2) C. Playing Piano

    C. Playing Piano 题目链接:https://codeforces.com/contest/1079/problem/C 题意: 给出数列{an},现在要求你给出一个数列{bn},满足: ...