送给大家一个XML与DataSet的相互转换的类:
XmlDatasetConvert 该类提供了四种方法:
1、将xml对象内容字符串转换为DataSet
2、将xml文件转换为DataSet
3、将DataSet转换为xml对象字符串
4、将DataSet转换为xml文件
XmlDatasetConvert.cs
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.IO;
using System.Xml;
namespace XmlDesign
{
class XmlDatasetConvert
{
//将xml对象内容字符串转换为DataSet
public static DataSet ConvertXMLToDataSet(string xmlData)
{
StringReader stream = null;
XmlTextReader reader = null;
try
{
DataSet xmlDS = new DataSet();
stream = new StringReader(xmlData);
//从stream装载到XmlTextReader
reader = new XmlTextReader(stream);
xmlDS.ReadXml(reader);
return xmlDS;
}
catch (System.Exception ex)
{
throw ex;
}
finally
{
if (reader != null) reader.Close();
}
}
//将xml文件转换为DataSet
public static DataSet ConvertXMLFileToDataSet(string xmlFile)
{
StringReader stream = null;
XmlTextReader reader = null;
try
{
XmlDocument xmld = new XmlDocument();
xmld.Load(xmlFile);
DataSet xmlDS = new DataSet();
stream = new StringReader(xmld.InnerXml);
//从stream装载到XmlTextReader
reader = new XmlTextReader(stream);
xmlDS.ReadXml(reader);
//xmlDS.ReadXml(xmlFile);
return xmlDS;
}
catch (System.Exception ex)
{
throw ex;
}
finally
{
if (reader != null) reader.Close();
}
}
//将DataSet转换为xml对象字符串
public static string ConvertDataSetToXML(DataSet xmlDS)
{
MemoryStream stream = null;
XmlTextWriter writer = null;
try
{
stream = new MemoryStream();
//从stream装载到XmlTextReader
writer = new XmlTextWriter(stream, Encoding.Unicode);
//用WriteXml方法写入文件.
xmlDS.WriteXml(writer);
int count = (int)stream.Length;
byte[] arr = new byte[count];
stream.Seek(0, SeekOrigin.Begin);
stream.Read(arr, 0, count);
UnicodeEncoding utf = new UnicodeEncoding();
return utf.GetString(arr).Trim();
}
catch (System.Exception ex)
{
throw ex;
}
finally
{
if (writer != null) writer.Close();
}
}
//将DataSet转换为xml文件
public static void ConvertDataSetToXMLFile(DataSet xmlDS,string xmlFile)
{
MemoryStream stream = null;
XmlTextWriter writer = null;
try
{
stream = new MemoryStream();
//从stream装载到XmlTextReader
writer = new XmlTextWriter(stream, Encoding.Unicode);
//用WriteXml方法写入文件.
xmlDS.WriteXml(writer);
int count = (int)stream.Length;
byte[] arr = new byte[count];
stream.Seek(0, SeekOrigin.Begin);
stream.Read(arr, 0, count);
//返回Unicode编码的文本
UnicodeEncoding utf = new UnicodeEncoding();
StreamWriter sw = new StreamWriter(xmlFile);
sw.WriteLine("<?xml version=/"1.0/" encoding=/"utf-8/"?>");
sw.WriteLine(utf.GetString(arr).Trim());
sw.Close();
}
catch( System.Exception ex )
{
throw ex;
}
finally
{
if (writer != null) writer.Close();
}
}
}
}
使用示例
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Data;
namespace XmlDesign
{
class Program
{
static void Main(string[] args)
{
DataSet ds = new DataSet();
转换一个XML文件(本地/网络均可)为一个DataSet#region 转换一个XML文件(本地/网络均可)为一个DataSet
//http://news.baidu.com/n?cmd=1&class=sportnews&tn=rss
//F:/study/001CSharp_Study/002Source/XmlDesign/XmlDesign/Save_Plan.xml
ds = XmlDatasetConvert.ConvertXMLFileToDataSet(@"http://news.baidu.com/n?cmd=1&class=sportnews&tn=rss");
Console.WriteLine("数据集名为/"{0}/",包含{1}个表", ds.DataSetName, ds.Tables.Count);
foreach(DataTable dt in ds.Tables)
{
PrintTableName(dt.TableName);
};
#endregion
构造一个DataSet,并转换为XML字符串#region 构造一个DataSet,并转换为XML字符串
DataSet ds1 = new DataSet();
DataTable dt1 = new DataTable();
dt1.TableName = "test";
dt1.Columns.Add("id");
dt1.Columns.Add("name");
dt1.Rows.Add("i001", "hekui");
dt1.Rows.Add("i002", "liyang");
DataTable dt2 = new DataTable();
dt2.TableName = "test1";
dt2.Columns.Add("bookid");
dt2.Columns.Add("bookname");
dt2.Rows.Add("b001", "书本1");
dt2.Rows.Add("b002", "书本2");
ds1.Tables.Add(dt1);
ds1.Tables.Add(dt2);
ds1.DataSetName = "方案";
string xmlOut = XmlDatasetConvert.ConvertDataSetToXML(ds1);
#endregion
转换一个XML字符串为一个DataSet#region 转换一个XML字符串为一个DataSet
DataSet ds2 = new DataSet();
ds2 = XmlDatasetConvert.ConvertXMLToDataSet(xmlOut);
Console.WriteLine("数据集名为/"{0}/",包含{1}个表", ds2.DataSetName, ds2.Tables.Count);
foreach (DataTable dt in ds2.Tables)
{
PrintTableName(dt.TableName);
};
#endregion
转换一个Dataset为一个XML文件#region 转换一个Dataset为一个XML文件
XmlDatasetConvert.ConvertDataSetToXMLFile(ds2, "c://adadsda1.xml");
#endregion
Console.ReadLine();
}
private static void PrintTableName(string tableName)
{
Console.WriteLine(tableName);
}
}
}
分享到:
相关推荐
轻松实现xml与DataSet的相互转换
XML 和DataSet 之间相互转换,满足你数据处理的需求。
在asp.net中提供了数据集DateSet与Xml转换的类 XmlDatasetConvert code: XmlDatasetConvert 该类提供了四种方法: 1、将xml对象内容字符串转换为DataSet 2、将xml文件转换为DataSet 3、将DataSet转换为...
DataSet Xml 互相转换
C# DataSet和XML文件的相互转换 DataSet和XML文件的相互转换
dataset与xml的相互转换类dataset与xml的相互转换类dataset与xml的相互转换类
XML与DataTable相互转换,可以直接使用
DataSet和XML的相互转换,有兴趣的朋友可以下载看看,很强大
ASP_NET中把xml转为dataset与xml字符串转为dataset及dataset转为xml的代码
xml与dataset介绍及它们之间相互转换的介绍
XMLOperator基础类库,封装xml基础方法,设置节点内容,xml与dataset相互转换,xml节点的增删改。应该会对学习C# xml的同学有帮助
为实现这一目标,该框架的关键技术是如何在Dataset与XML间相互转换,这里发布的压缩文件中包含TADODataset与XML相互转换的源代码: //将TADODataset转换成XML function RecordsetToXML(const ARecordset: ADOInt._...
了解约束和关系之间的相互关系:描述当使用 XML 架构元素在 DataSet 中创建约束时如何隐式地创建关系。 从 XML 推断 DataSet 关系结构:描述在从 XML 元素进行推断时所创建的 DataSet 的结果关系结构(即架构)。...
这些实例描述了数据的使用语法的实例,包括从Connction,Command到DataSet,DataAdapter,DataRelated,DataReader,的语法,也有DataSet与xml文档的交流以及数据库与xml的相互数据转化.其中也有一些图片来总结它们的...
C#文件的读写,其中包含了csv xml dataSet dataTable dataGridView文件格式的互相转化。
14.9.1 把DataSet转换为XML 14.9.2 把DataSet作为XML访问 14.10 总结 第三部分 构建ASP.NET网站 第15章 用户控件 15.1 用户控件基础 15.1.1 创建简单的用户控件 15.1.2 把页面转换成用户控件 15.2 ...
14.9.1 把DataSet转换为XML 514 14.9.2 把DataSet作为XML访问 515 14.10 总结 517 第三部分 构建ASP.NET网站 第15章 用户控件 520 15.1 用户控件基础 520 15.1.1 创建简单的用户控件 521 15.1.2 把...
分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程中常用的属性、方法、类和各种技术,...