zoukankan      html  css  js  c++  java
  • xml

    using System; 
    using System.Data; 
    using System.IO; 
    using System.Xml; 
    using System.Text; 
    
    namespace HyeyClass.Common
    {
    	/// <summary>
    	/// Xml 的摘要说明。
    	/// </summary>
    	public class Xml
    	{
    		public Xml()
    		{
    			//
    			// TODO: 在此处添加构造函数逻辑
    			//
    		}
    		
    
    		
    		/// <summary>
    		/// Converts the data table to XML.
    		/// </summary>
    		/// <param name="xmlDS">The XML DS.</param>
    		/// <returns></returns>
    		public static string ConvertDataTableToXML(DataTable xmlDS) 
    		{ 
    			MemoryStream stream = null; 
    			XmlTextWriter writer = null; 
    			try 
    			{ 
    				stream = new MemoryStream(); 
    				writer = new XmlTextWriter(stream, Encoding.Default); 
    				xmlDS.WriteXml(writer); 
    				int count = (int)stream.Length; 
    				byte[] arr = new byte[count]; 
    				stream.Seek(0, SeekOrigin.Begin); 
    				stream.Read(arr, 0, count); 
    				UTF8Encoding utf = new UTF8Encoding(); 
    				return utf.GetString(arr).Trim(); 
    			} 
    			catch 
    			{ 
    				return String.Empty; 
    			} 
    			finally 
    			{ 
    				if (writer != null) writer.Close(); 
    			} 
    		}
    
    
    		/// <summary>
    		/// Converts the XML to data set.
    		/// </summary>
    		/// <param name="xmlData">The XML data.</param>
    		/// <returns></returns>
    		public static DataSet ConvertXMLToDataSet(string xmlData) 
    		{ 
    			StringReader stream = null; 
    			XmlTextReader reader = null; 
    			try 
    			{ 
    				DataSet xmlDS = new DataSet(); 
    				stream = new StringReader(xmlData); 
    				reader = new XmlTextReader(stream); 
    				xmlDS.ReadXml(reader); 
    				return xmlDS; 
    			} 
    			catch (Exception ex) 
    			{ 
    				string strTest = ex.Message; 
    				return null; 
    			} 
    			finally 
    			{ 
    				if (reader != null) 
    					reader.Close(); 
    			} 
    		}
    	}
    
    	/// <summary>
    	/// 把DataSet、DataTable、DataView格式转换成XML字符串、XML文件
    	/// </summary>
    	public class DataToXml
    	{
    		/// <summary>
    		/// 将DataTable对象转换成XML字符串
    		/// </summary>
    		/// <param name="dt">DataTable对象</param>
    		/// <returns>XML字符串</returns>
    		public static string CDataToXml(DataTable dt)
    		{
    			if (dt != null)
    			{
    				MemoryStream ms = null;
    				XmlTextWriter XmlWt = null;
    				try
    				{
    					ms = new MemoryStream();
    					//根据ms实例化XmlWt
    					XmlWt = new XmlTextWriter(ms, Encoding.Unicode);
    					//获取ds中的数据
    					dt.WriteXml(XmlWt);
    					int count = (int)ms.Length;
    					byte[] temp = new byte[count];
    					ms.Seek(0, SeekOrigin.Begin);
    					ms.Read(temp, 0, count);
    					//返回Unicode编码的文本
    					UnicodeEncoding ucode = new 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 "";
    			}
    		}
    
    		/// <summary>
    		/// 将DataSet对象中指定的Table转换成XML字符串
    		/// </summary>
    		/// <param name="ds">DataSet对象</param>
    		/// <param name="tableIndex">DataSet对象中的Table索引</param>
    		/// <returns>XML字符串</returns>
    		public static string CDataToXml(DataSet ds, int tableIndex)
    		{
    			if (tableIndex != -1)
    			{
    				return CDataToXml(ds.Tables[tableIndex]);
    			}
    			else
    			{
    				return CDataToXml(ds.Tables[0]);
    			}
    		}
    
    		/// <summary>
    		/// 将DataSet对象转换成XML字符串
    		/// </summary>
    		/// <param name="ds">DataSet对象</param>
    		/// <returns>XML字符串</returns>
    		public static string CDataToXml(DataSet ds)
    		{
    			return CDataToXml(ds, -1);
    		}
    
    
    		/// <summary>
    		/// 将DataView对象转换成XML字符串
    		/// </summary>
    		/// <param name="dv">DataView对象</param>
    		/// <returns>XML字符串</returns>
    		public static string CDataToXml(DataView dv)
    		{
    			return CDataToXml(dv.Table);
    		} 
    			
    		/// <summary>
    		/// 将DataSet对象数据保存为XML文件
    		/// </summary>
    		/// <param name="dt">DataSet</param>
    		/// <param name="xmlFilePath">XML文件路径</param>
    		/// <returns>bool值</returns>
    		public static bool CDataToXmlFile(DataTable dt, string xmlFilePath)
    		{
    			if ((dt != null) && (!string.IsNullOrEmpty(xmlFilePath)))
    			{
    				string path = HttpContext.Current.Server.MapPath(xmlFilePath);
    				MemoryStream ms = null;
    				XmlTextWriter XmlWt = null;
    				try
    				{
    					ms = new MemoryStream();
    					//根据ms实例化XmlWt
    					XmlWt = new XmlTextWriter(ms, Encoding.Unicode);
    					//获取ds中的数据
    					dt.WriteXml(XmlWt);
    					int count = (int)ms.Length;
    					byte[] temp = new byte[count];
    					ms.Seek(0, SeekOrigin.Begin);
    					ms.Read(temp, 0, count);
    					//返回Unicode编码的文本
    					UnicodeEncoding ucode = new UnicodeEncoding();
    					//写文件
    					StreamWriter sw = new StreamWriter(path);
    					sw.WriteLine("<?xml version='1.0' encoding='utf-8'?>");
    					sw.WriteLine(ucode.GetString(temp).Trim());
    					sw.Close();
    					return true;
    				}
    				catch (System.Exception ex)
    				{
    					throw ex;
    				}
    				finally
    				{
    					//释放资源
    					if (XmlWt != null)
    					{
    						XmlWt.Close();
    						ms.Close();
    						ms.Dispose();
    					}
    				}
    			}
    			else
    			{
    				return false;
    			}
    		}
    			
    			
    		/// <summary>
    		/// 将DataSet对象中指定的Table转换成XML文件
    		/// </summary>
    		/// <param name="ds">DataSet对象</param>
    		/// <param name="tableIndex">DataSet对象中的Table索引</param>
    		/// <param name="xmlFilePath">xml文件路径</param>
    		/// <returns>bool]值</returns>
    		public static bool CDataToXmlFile(DataSet ds, int tableIndex, string xmlFilePath)
    		{
    			if (tableIndex != -1)
    			{
    				return CDataToXmlFile(ds.Tables[tableIndex], xmlFilePath);
    			}
    			else
    			{
    				return CDataToXmlFile(ds.Tables[0], xmlFilePath);
    			}
    		}
    			
    			
    		/// <summary>
    		/// 将DataSet对象转换成XML文件
    		/// </summary>
    		/// <param name="ds">DataSet对象</param>
    		/// <param name="xmlFilePath">xml文件路径</param>
    		/// <returns>bool]值</returns>
    		public static bool CDataToXmlFile(DataSet ds, string xmlFilePath)
    		{
    			return CDataToXmlFile(ds, -1, xmlFilePath);
    		}
    			
    		/// <summary>
    		/// 将DataView对象转换成XML文件
    		/// </summary>
    		/// <param name="dv">DataView对象</param>
    		/// <param name="xmlFilePath">xml文件路径</param>
    		/// <returns>bool]值</returns>
    		public static bool CDataToXmlFile(DataView dv, string xmlFilePath)
    		{
    			return CDataToXmlFile(dv.Table, xmlFilePath);
    		}
    	}
    
    
    	/// <summary>
    	/// XML形式的字符串、XML文江转换成DataSet、DataTable格式
    	/// </summary>
    	public class XmlToData
    	{
    		/// <summary>
    		/// 将Xml内容字符串转换成DataSet对象
    		/// </summary>
    		/// <param name="xmlStr">Xml内容字符串</param>
    		/// <returns>DataSet对象</returns>
    		public static DataSet CXmlToDataSet(string xmlStr)
    		{
    			if (!string.IsNullOrEmpty(xmlStr))
    			{
    				StringReader StrStream = null;
    				XmlTextReader Xmlrdr = null;
    				try
    				{
    					DataSet ds = new DataSet();
    					//读取字符串中的信息
    					StrStream = new StringReader(xmlStr);
    					//获取StrStream中的数据
    					Xmlrdr = new XmlTextReader(StrStream);
    					//ds获取Xmlrdr中的数据                
    					ds.ReadXml(Xmlrdr);
    					return ds;
    				}
    				catch (Exception e)
    				{
    					throw e;
    				}
    				finally
    				{
    					//释放资源
    					if (Xmlrdr != null)
    					{
    						Xmlrdr.Close();
    						StrStream.Close();
    						StrStream.Dispose();
    					}
    				}
    			}
    			else
    			{
    				return null;
    			}
    		}
    			
    		/// <summary>
    		/// 将Xml字符串转换成DataTable对象
    		/// </summary>
    		/// <param name="xmlStr">Xml字符串</param>
    		/// <param name="tableIndex">Table表索引</param>
    		/// <returns>DataTable对象</returns>
    		public static DataTable CXmlToDatatTable(string xmlStr, int tableIndex)
    		{
    			return CXmlToDataSet(xmlStr).Tables[tableIndex];
    		}
    			
    		/// <summary>
    		/// 将Xml字符串转换成DataTable对象
    		/// </summary>
    		/// <param name="xmlStr">Xml字符串</param>
    		/// <returns>DataTable对象</returns>
    		public static DataTable CXmlToDatatTable(string xmlStr)
    		{
    			return CXmlToDataSet(xmlStr).Tables[0];
    		}
    			
    		/// <summary>
    		/// 读取Xml文件信息,并转换成DataSet对象
    		/// </summary>
    		/// <remarks>
    		/// DataSet ds = new DataSet();
    		/// ds = CXmlFileToDataSet("/XML/upload.xml");
    		/// </remarks>
    		/// <param name="xmlFilePath">Xml文件地址</param>
    		/// <returns>DataSet对象</returns>
    		public static DataSet CXmlFileToDataSet(string xmlFilePath)
    		{
    			if (!string.IsNullOrEmpty(xmlFilePath))
    			{
    				string path = HttpContext.Current.Server.MapPath(xmlFilePath);
    				StringReader StrStream = null;
    				XmlTextReader Xmlrdr = null;
    				try
    				{
    					XmlDocument xmldoc = new XmlDocument();
    					//根据地址加载Xml文件
    					xmldoc.Load(path);
    
    					DataSet ds = new DataSet();
    					//读取文件中的字符流
    					StrStream = new StringReader(xmldoc.InnerXml);
    					//获取StrStream中的数据
    					Xmlrdr = new XmlTextReader(StrStream);
    					//ds获取Xmlrdr中的数据
    					ds.ReadXml(Xmlrdr);
    					return ds;
    				}
    				catch (Exception e)
    				{
    					throw e;
    				}
    				finally
    				{
    					//释放资源
    					if (Xmlrdr != null)
    					{
    						Xmlrdr.Close();
    						StrStream.Close();
    						StrStream.Dispose();
    					}
    				}
    			}
    			else
    			{
    				return null;
    			}
    		}		
    			
    			
    		/// <summary>
    		/// 读取Xml文件信息,并转换成DataTable对象
    		/// </summary>
    		/// <param name="xmlFilePath">xml文件路径</param>
    		/// <param name="tableIndex">Table索引</param>
    		/// <returns>DataTable对象</returns>
    		public static DataTable CXmlToDataTable(string xmlFilePath, int tableIndex)
    		{
    			return CXmlFileToDataSet(xmlFilePath).Tables[tableIndex];
    		}
    			
    			
    		/// <summary>
    		/// 读取Xml文件信息,并转换成DataTable对象
    		/// </summary>
    		/// <param name="xmlFilePath">xml文江路径</param>
    		/// <returns>DataTable对象</returns>
    		public static DataTable CXmlToDataTable(string xmlFilePath)
    		{
    			return CXmlFileToDataSet(xmlFilePath).Tables[0];
    		}
    	}
    }
    
    
  • 相关阅读:
    215. Kth Largest Element in an Array
    214. Shortest Palindrome
    213. House Robber II
    212. Word Search II
    210 Course ScheduleII
    209. Minimum Size Subarray Sum
    208. Implement Trie (Prefix Tree)
    207. Course Schedule
    206. Reverse Linked List
    sql 开发经验
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/1727068.html
Copyright © 2011-2022 走看看