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. C:\Windows\System32目录可执行文件列表(Win7 64)

    C:\Windows\System32>where /? C:\Windows\System32>where "c:\windows\system32:*.exe" & ...

  2. webdriver--定位一组元素+iframe表单切换

    定位一组元素:find_elements,返回的是list,所以可以用列表的索引对列表里的某个元素操作,也可以用for循环访问list,依次操作各元素 driver.find_elements_by_ ...

  3. Jetty 安装、启动与项目部署

    Jetty是当下非常流行的一款轻量级Java Web服务器和Servlet容器实现,它由Eclipse基金会托管,完全免费而且开放源代码,因此所有人均可以从其官网下载最新源代码进行研究.由于其轻量.灵 ...

  4. PC Server远程管理卡用户管理脚本实现

    1.IPMI工作原理图: 2.脚本实现流程图: 3.适配服务器机型: 4.演示效果: 5.实现代码: #!/usr/bin/env bash # Author : JACK ZHAO # Date : ...

  5. Bat 修改 xml 文件标签值

    xml 文件如下: <ConfigurationData> <ReportsFolder>\Reports</ReportsFolder> <Helpfold ...

  6. 初识 HTML5(一)

    H5其实就是H4的一个增强版本,我们在利用H5进行网页的构造会更简便,标签语义更简洁明了.首先,我们要理解HTML4,它是HTML的标记+css2+JavaScript的一些基本应用,简言之,就是AP ...

  7. myEclipse如何将程序部署到tomcat(附录MyEclipse调试快捷键)

    部署 1.选中你要部署的项目,在工具栏找到 Deploy MyEclipse J2EE Project to Server 2.单击Add,即出现如下界面.选择相应的Server,要和你在配置tomc ...

  8. 多线程 线程组 ThreadGroup

    package org.zln.thread; import java.util.Date; /** * Created by sherry on 000024/6/24 22:30. */ publ ...

  9. hdu 3986 Harry Potter and the Final Battle (最短路径)

    Harry Potter and the Final Battle Time Limit: 5000/3000 MS (Java/Others)    Memory Limit: 65536/6553 ...

  10. Password [分块]

    题面 $n,m,x \leq 10^5$ 思路 首先$n=2$做法很多,不讲了 $n=3$的时候,分块维护两个东西:每一个数出现次数的前缀和,和出现次数的出现次数的前缀和(说的有点绕,但是应该挺好理解 ...