using System; using System.Data; using System.IO; using System.Web; using System.Xml; using IwbZero.ToolCommon.LogHelpers; namespace IwbZero.ToolCommon.FileHelpers { /// /// XML形式的字符串、XML文江转换成DataSet、DataTable格式 /// public static class XmlToData { /**//// /// 将Xml内容字符串转换成DataSet对象 /// /// Xml内容字符串 /// DataSet对象 public static DataSet CXmlToDataSet(this string xmlStr) { if (!string.IsNullOrEmpty(xmlStr)) { StringReader StrStream = null; XmlTextReader Xmlns = null; try { DataSet ds = new DataSet(); //读取字符串中的信息 StrStream = new StringReader(xmlStr); //获取StrStream中的数据 Xmlns = new XmlTextReader(StrStream); //ds获取Xmlns中的数据 ds.ReadXml(Xmlns); return ds; } catch (Exception e) { typeof(XmlToData).LogError(e); } finally { //释放资源 if (Xmlns != null) { Xmlns.Close(); StrStream.Close(); StrStream.Dispose(); } } } return null; } /**//// /// 将Xml字符串转换成DataTable对象 /// /// Xml字符串 /// Table表索引 /// DataTable对象 public static DataTable CXmlToDataTable(this string xmlStr, int tableIndex) { return CXmlToDataSet(xmlStr).Tables[tableIndex]; } /**//// /// 将Xml字符串转换成DataTable对象 /// /// Xml字符串 /// DataTable对象 public static DataTable CXmlToDataTable(this string xmlStr) { return CXmlToDataSet(xmlStr).Tables[0]; } /**//// /// 读取Xml文件信息,并转换成DataSet对象 /// /// /// DataSet ds = new DataSet(); /// ds = CXmlFileToDataSet("/XML/upload.xml"); /// /// Xml文件地址 /// DataSet对象 public static DataSet CXmlFileToDataSet(this string xmlFilePath) { if (!string.IsNullOrEmpty(xmlFilePath)) { string path = HttpContext.Current.Server.MapPath(xmlFilePath); StringReader StrStream = null; XmlTextReader Xmlns = null; try { XmlDocument xmlDoc = new XmlDocument(); //根据地址加载Xml文件 xmlDoc.Load(path); DataSet ds = new DataSet(); //读取文件中的字符流 StrStream = new StringReader(xmlDoc.InnerXml); //获取StrStream中的数据 Xmlns = new XmlTextReader(StrStream); //ds获取Xmlns中的数据 ds.ReadXml(Xmlns); return ds; } catch (Exception e) { typeof(XmlToData).LogError(e); } finally { //释放资源 if (Xmlns != null) { Xmlns.Close(); StrStream.Close(); StrStream.Dispose(); } } } return null; } /**//// /// 读取Xml文件信息,并转换成DataTable对象 /// /// xml文江路径 /// Table索引 /// DataTable对象 public static DataTable CXmlFileToDataTable(this string xmlFilePath, int tableIndex) { return CXmlFileToDataSet(xmlFilePath).Tables[tableIndex]; } /**//// /// 读取Xml文件信息,并转换成DataTable对象 /// /// xml文江路径 /// DataTable对象 public static DataTable CXmlFileToDataTable(this string xmlFilePath) { return CXmlFileToDataSet(xmlFilePath).Tables[0]; } } }