一、DataTable转XML
- #region DataTableToXml
- /// <summary>
- /// 将DataTable对象转换成XML字符串
- /// </summary>
- /// <param name="ds">DataSet对象</param>
- /// <returns>XML字符串</returns>
- public static string DataTableToXml(DataTable dt,string sName)
- {
- if (dt != null)
- {
- MemoryStream ms = null;
- XmlTextWriter XmlWt = null;
- try
- {
- ms = new MemoryStream();
- //根据ms实例化XmlWt
- XmlWt = new XmlTextWriter(ms, System.Text.Encoding.Unicode);
- //获取ds中的数据
- dt.TableName = Sql.IsEmptyString(sName) ? "dt2xml" : sName;
- dt.WriteXml(XmlWt, XmlWriteMode.WriteSchema);
- int count = (int)ms.Length;
- byte[] temp = new byte[count];
- ms.Seek(0, SeekOrigin.Begin);
- ms.Read(temp, 0, count);
- //返回Unicode编码的文本
- System.Text.UnicodeEncoding ucode = new System.Text.UnicodeEncoding();
- string returnValue = ucode.GetString(temp).Trim();
- return returnValue;
- }
- catch (System.Exception ex)
- {
- throw ex;
- }
- finally
- {
- //释放资源
- if (XmlWt != null)
- {
- XmlWt.Close();
- ms.Close();
- ms.Dispose();
- }
- }
- }
- else
- {
- return "";
- }
- }
- #endregion
复制代码 二、XML转Dataset
方法A: - #region Xml To DataSet
- public static DataSet XmlToDataSet(string xmlString)
- {
- XmlDocument xmldoc = new XmlDocument();
- xmldoc.LoadXml(xmlString);
- StringReader stream = null;
- XmlTextReader reader = null;
- try
- {
- DataSet xmlDS = new DataSet();
- stream = new StringReader(xmldoc.InnerXml);
- reader = new XmlTextReader(stream);
- xmlDS.ReadXml(reader);
- reader.Close();
- return xmlDS;
- }
- catch (System.Exception ex)
- {
- reader.Close();
- throw ex;
- }
- }
- #endregion
复制代码方法B: - private static DataSet XMLToDataset()
- {
- string strDBXMLFile = @"F:\TestDir\XML\DBTEST.XML";
- DataSet dsXML = new DataSet();
- dsXML.ReadXml(strDBXMLFile);
- //某个节点名称的所有节点内容
- DataTable dtOneNote = dsXML.Tables["SMT"];
- return dsXML;
- }
复制代码 三、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();
- }
- }
复制代码到此这篇关于C#实现XML文件与DataTable、Dataset互转的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持晓枫资讯。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |