.NET怎么把数据存在XML里 怎么把数据存在XML文件里,又怎么从XML里取数据 请高手指点下 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml.Serialization; using System.IO; namespace RegexActivator { public class ExtendMethods { public static void Serial<T>(T[] items, string path) { XmlSerializer xmlSerializer = new XmlSerializer(typeof(T[])); TextWriter writer = new StreamWriter(path); try { xmlSerializer.Serialize(writer, items); } finally { writer.Close(); } } public static T[] Deserial<T>(string path) { if (!File.Exists(path)) return new T[0]; XmlSerializer xmlSerializer = new XmlSerializer(typeof(T[])); FileStream fs = new FileStream(path, FileMode.Open); T[] items; try { items = (T[])xmlSerializer.Deserialize(fs); } finally { fs.Close(); } return items; } } } http://blog.csdn.net/wuyazhe/archive/2010/07/30/5775666.aspx 在VS2008中增加了LinQ的概念,使用LinQ读写XML比较方便,下面通过一个简单实例说明用法。一、定义一个简单的XML文件<?xml version="1.0" encoding="utf-8"?><Paths><OutPath> <Path>D:\Downloads\</Path></OutPath></Paths>二、读取OutPath中的Path节点的值 var vFile = this.MyDataPath() + "MySet.xml"; // xml文件的路径 XDocument xd = XDocument.Load(vFile); var src = from m in xd.Descendants("OutPath") select m.Element("Path").Value; int i = 0; foreach (var p in src) { v导出路径 = p; i++; if (i == 1) break; } if (v导出路径 == "") { v导出路径 = this.MyDataPath(); }三、写入指定节点的值到XML文件中 var vFile = this.MyDataPath() + "MySet.xml"; XDocument xd = XDocument.Load(vFile); xd.Element("Paths").Element("OutPath").Element("Path").Value = v导出路径; xd.Save(vFile); 操作XMLdataset.readxmldataset.writexml对象序列化和反序列化public static void SaveXml(string filePath, object obj, System.Type type) { using (System.IO.StreamWriter writer = new System.IO.StreamWriter(filePath)) { System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(type); xs.Serialize(writer, obj); writer.Close(); } }XML 操作类LINQ TO XML 新手求教,如何从html文档中获取表格数据到Listview中? request.GetResponse 远程服务器返回错误: (500) 内部服务器错误。 C#设置打印纸张大小问题 FCS校验码 关于NHibernate的问题 数据库取值问题 为什么插入一行不行? 可能大家都 會遇到的問題!討論一下! 请指教,如何搜寻局域网中的sql服务器 有CodeDOM经验的进。 form上画了一些矩形和圆形,请教如何打印? 菜鸟求例子,全部的分了
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
using System.IO;
namespace RegexActivator
{
public class ExtendMethods
{
public static void Serial<T>(T[] items, string path)
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T[]));
TextWriter writer = new StreamWriter(path);
try
{
xmlSerializer.Serialize(writer, items);
}
finally
{
writer.Close();
}
}
public static T[] Deserial<T>(string path)
{
if (!File.Exists(path)) return new T[0];
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T[]));
FileStream fs = new FileStream(path, FileMode.Open);
T[] items;
try
{
items = (T[])xmlSerializer.Deserialize(fs);
}
finally
{
fs.Close();
}
return items;
}
}
}
在VS2008中增加了LinQ的概念,使用LinQ读写XML比较方便,下面通过一个简单实例说明用法。
一、定义一个简单的XML文件
<?xml version="1.0" encoding="utf-8"?>
<Paths>
<OutPath>
<Path>D:\Downloads\</Path>
</OutPath>
</Paths>
二、读取OutPath中的Path节点的值
var vFile = this.MyDataPath() + "MySet.xml"; // xml文件的路径
XDocument xd = XDocument.Load(vFile);
var src = from m in xd.Descendants("OutPath")
select m.Element("Path").Value;
int i = 0;
foreach (var p in src)
{
v导出路径 = p;
i++;
if (i == 1) break;
}
if (v导出路径 == "")
{
v导出路径 = this.MyDataPath();
}
三、写入指定节点的值到XML文件中
var vFile = this.MyDataPath() + "MySet.xml";
XDocument xd = XDocument.Load(vFile);
xd.Element("Paths").Element("OutPath").Element("Path").Value = v导出路径;
xd.Save(vFile);
dataset.readxml
dataset.writexml
对象序列化和反序列化
public static void SaveXml(string filePath, object obj, System.Type type)
{
using (System.IO.StreamWriter writer = new System.IO.StreamWriter(filePath))
{
System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(type);
xs.Serialize(writer, obj);
writer.Close();
}
}
XML 操作类
LINQ TO XML