/// <summary> /// 修改数据 /// </summary> /// <param name="path">路径</param> /// <param name="node">节点</param> /// <param name="attribute">属性名,非空时修改该节点属性值,否则修改节点值</param> /// <param name="value">值</param> /// <returns></returns> public static void Update(string path, string node, string attribute, string value) { /************************************************** * 使用示列: * XmlHelper.Insert(path, "/Node", "", "Value") * XmlHelper.Insert(path, "/Node", "Attribute", "Value") ************************************************/ try { var xmlDocument = new XmlDocument(); xmlDocument.Load(path); var selectSingleNode = xmlDocument.SelectSingleNode(node); var xmlElement = (XmlElement)selectSingleNode; if (attribute.Equals("")) { if (xmlElement != null) { xmlElement.InnerText = value; } } else { xmlElement.SetAttribute(attribute, value); } xmlDocument.Save(path); } catch (Exception exception) { LOGCore.Trace(LOGCore.ST.Day, "【XMLHelper】", exception.ToString()); } }
/// <summary> /// 删除数据 /// </summary> /// <param name="path">路径</param> /// <param name="node">节点</param> /// <param name="attribute">属性名,非空时删除该节点属性值,否则删除节点值</param> /// <returns></returns> public static void Delete(string path, string node, string attribute) { /************************************************** * 使用示列: * XmlHelper.Delete(path, "/Node", "") * XmlHelper.Delete(path, "/Node", "Attribute") ************************************************/ try { var xmlDocument = new XmlDocument(); xmlDocument.Load(path); var selectSingleNode = xmlDocument.SelectSingleNode(node); var xmlElement = (XmlElement)selectSingleNode; if (attribute.Equals("")) { selectSingleNode.ParentNode.RemoveChild(selectSingleNode); } else { xmlElement.RemoveAttribute(attribute); } xmlDocument.Save(path); } catch (Exception exception) { LOGCore.Trace(LOGCore.ST.Day, "【XMLHelper】", exception.ToString()); } }
/// <summary> /// 读取xml的节点 /// </summary> /// <param name="path">路径</param> /// <param name="nodeName">节点名称</param> /// <param name="name">属性名称</param> /// <returns></returns> public static string ReadXml(string path, string nodeName, string name) //读取XML { try { var xmlValue = ""; if (!File.Exists(path)) { return(xmlValue); } var myFile = new FileStream(path, FileMode.Open); //打开xml文件 var xmlTextReader = new XmlTextReader(myFile); //xml文件阅读器 while (xmlTextReader.Read()) { if (xmlTextReader.Name == nodeName) { //获取服务器的地址//获取升级文档的最后一次更新日期 xmlValue = xmlTextReader.GetAttribute(name); break; } } xmlTextReader.Close(); myFile.Close(); return(xmlValue); } catch (Exception exception) { LOGCore.Trace(LOGCore.ST.Day, "【XMLHelper】", exception.ToString()); return(null); } }
/// <summary> /// 静态扩展 /// </summary> /// <typeparam name="T">需要序列化的对象类型,必须声明[Serializable]特征</typeparam> /// <param name="obj">需要序列化的对象</param> /// <param name="omitXmlDeclaration">true:省略XML声明;否则为false.默认false,即编写 XML 声明。</param> /// <returns></returns> public static string SerializeToXmlStr <T>(T obj, bool omitXmlDeclaration) { try { return(Serialize(obj, omitXmlDeclaration)); } catch (Exception exception) { LOGCore.Trace(LOGCore.ST.Day, "【XMLHelper】", exception.ToString()); return(null); } }
/// <summary> /// (秒)时间转Int /// </summary> /// <param name="time"></param> /// <returns></returns> public static string ConvertToDateTimeStr(DateTime time) { try { return(time.ToString("yyyyMMddhhmmss")); } catch (Exception ex) { LOGCore.Trace(LOGCore.ST.Day, "【TimeHelper】", ex.ToString()); return("0"); } }
/// <summary> /// 读取excel ,默认第一行为标头 /// </summary> /// <param name="strFileName"></param> /// <param name="fileStream"></param> /// <returns></returns> public static DataTable Import(string strFileName, Stream fileStream) { DataTable dt = new DataTable(); IWorkbook workbook = null; try { if (strFileName.IndexOf(".xlsx") > 0) // 2007版本 { workbook = new XSSFWorkbook(fileStream); } else if (strFileName.IndexOf(".xls") > 0) // 2003版本 { workbook = new HSSFWorkbook(fileStream); } } catch (Exception ex) { LOGCore.Trace(LOGCore.ST.Day, "【ExcelHelper】", ex.ToString()); workbook = new HSSFWorkbook(fileStream); } ISheet sheet = workbook.GetSheetAt(0); System.Collections.IEnumerator rows = sheet.GetRowEnumerator(); IRow headerRow = sheet.GetRow(0); int cellCount = headerRow.LastCellNum; for (int j = 0; j < cellCount; j++) { ICell cell = headerRow.GetCell(j); dt.Columns.Add(cell.ToString()); } for (int i = (sheet.FirstRowNum + 1); i <= sheet.LastRowNum; i++) { IRow row = sheet.GetRow(i); DataRow dataRow = dt.NewRow(); for (int j = row.FirstCellNum; j < cellCount; j++) { if (row.GetCell(j) != null) { dataRow[j] = row.GetCell(j).ToString(); } } dt.Rows.Add(dataRow); } return(dt); }
/// <summary> /// Excel导出 /// </summary> /// <param name="dt"></param> /// <param name="filePath"></param> public static void DownloadExcel(DataTable dt, string filePath) { try { IWorkbook book = null; if (!string.IsNullOrEmpty(filePath) && null != dt && dt.Rows.Count > 0) { if (filePath.IndexOf(".xlsx") > 0) // 2007版本 { book = new XSSFWorkbook(); } else if (filePath.IndexOf(".xls") > 0) // 2003版本 { book = new HSSFWorkbook(); } else { filePath += ".xls"; book = new HSSFWorkbook(); } ISheet sheet = book.CreateSheet(dt.TableName); IRow row = sheet.CreateRow(0); for (int i = 0; i < dt.Columns.Count; i++) { row.CreateCell(i).SetCellValue(dt.Columns[i].ColumnName); } for (int i = 0; i < dt.Rows.Count; i++) { IRow row2 = sheet.CreateRow(i + 1); for (int j = 0; j < dt.Columns.Count; j++) { row2.CreateCell(j).SetCellValue(Convert.ToString(dt.Rows[i][j])); } } using (MemoryStream ms = new MemoryStream()) { book.Write(ms); using (FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write)) { byte[] data = ms.ToArray(); fs.Write(data, 0, data.Length); fs.Flush(); } book = null; } } } catch (Exception ex) { LOGCore.Trace(LOGCore.ST.Day, "ExcelHelper", ex.ToString()); } }
/// <summary> /// 将DataTable以指定的根结点名称写入文件 /// </summary> /// <param name="dataTable">含有数据的DataTable</param> /// <param name="rootName">根结点名称</param> /// <param name="filePath">文件路径</param> public static void SaveTableToFile(DataTable dataTable, string rootName, string filePath) { try { var dataSet = new DataSet(rootName); dataSet.Tables.Add(dataTable.Copy()); dataSet.WriteXml(filePath); } catch (Exception exception) { LOGCore.Trace(LOGCore.ST.Day, "【XMLHelper】", exception.ToString()); } }
/// <summary> /// 读取xml文件,并将文件序列化为类 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="path"></param> /// <returns></returns> public static T ReadXML <T>(string path) { try { var reader = new XmlSerializer(typeof(T)); var file = new StreamReader(path); return((T)reader.Deserialize(file)); } catch (Exception exception) { LOGCore.Trace(LOGCore.ST.Day, "【XMLHelper】", exception.ToString()); return(default(T)); } }
/// <summary> /// 获取一个字符串xml文档中的dataSet /// </summary> /// <param name="xmlString">含有xml信息的字符串</param> /// <param name="dataSet"></param> public static void GetXmlValueDataSet(string xmlString, ref DataSet dataSet) { try { var xmlDocument = new XmlDocument(); xmlDocument.LoadXml(xmlString); var xmlNodeReader = new XmlNodeReader(xmlDocument); dataSet.ReadXml(xmlNodeReader); xmlNodeReader.Close(); } catch (Exception exception) { LOGCore.Trace(LOGCore.ST.Day, "【XMLHelper】", exception.ToString()); } }
public static string HttpGetHTML(string uri, System.Text.Encoding code, System.Net.CookieContainer cotainer) { if (uri == null || (uri.ToLower().IndexOf("http://") == -1 && uri.ToLower().IndexOf("https://") == -1)) { return(""); } StreamReader sr = null; try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); request.Headers.Add("UA-CPU", "x86"); request.Referer = uri; request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727;)"; request.KeepAlive = false; request.CookieContainer = cotainer; request.Timeout = 8000; //设置远程页面请求超时时间 HttpWebResponse myResponse = (HttpWebResponse)request.GetResponse(); if (myResponse.StatusCode == HttpStatusCode.OK) { sr = new StreamReader(myResponse.GetResponseStream(), code); string serverResponse = sr.ReadToEnd().Trim(); return(serverResponse); } else { //return "失败:Status:" + myResponse.StatusCode.ToString(); return(string.Empty); } } catch (Exception ex) { LOGCore.Trace(LOGCore.ST.Day, "【HttpHelper】", ex.ToString()); return(string.Empty); } finally { if (sr != null) { sr.Close(); sr.Dispose(); } } }
/// <summary> /// 将对象写入XML文件 /// </summary> /// <typeparam name="T">C#对象名</typeparam> /// <param name="item">对象实例</param> /// <param name="path">路径</param> /// <param name="jjdbh">标号</param> /// <param name="ends">结束符号(整个xml的路径类似如下:C:\xmltest\201111send.xml,其中path=C:\xmltest,jjdbh=201111,ends=send)</param> /// <returns></returns> public static string WriteXML <T>(T item, string path, string jjdbh, string ends) { if (string.IsNullOrEmpty(ends)) { ends = "send"; } var i = 0; //控制写入文件的次数, var serializer = new XmlSerializer(item.GetType()); object[] obj = { path, "\\", jjdbh, ends, ".xml" }; var xmlPath = string.Concat(obj); while (true) { try { var fileStream = File.Create(xmlPath); //用filestream方式创建文件不会出现“文件正在占用中,用File.create”则不行 fileStream.Close(); TextWriter writer = new StreamWriter(xmlPath, false, Encoding.UTF8); var xmlSerializerNamespaces = new XmlSerializerNamespaces(); xmlSerializerNamespaces.Add(string.Empty, string.Empty); serializer.Serialize(writer, item, xmlSerializerNamespaces); writer.Flush(); writer.Close(); break; } catch (Exception exception) { if (i < 5) { i++; } else { LOGCore.Trace(LOGCore.ST.Day, "【XMLHelper】", exception.ToString()); break; } } } return(SerializeToXmlStr(item, true)); }
/// <summary> /// 获得xml文件中指定节点的节点数据 /// </summary> /// <returns></returns> public static string GetNodeInfoByNodeName(string path, string nodeName) { try { var xmlString = ""; var xmlDocument = new XmlDocument(); xmlDocument.Load(path); var documentElementRoot = xmlDocument.DocumentElement; var selectSingleNode = documentElementRoot.SelectSingleNode("//" + nodeName); if (selectSingleNode != null) { xmlString = selectSingleNode.InnerText; } return(xmlString); } catch (Exception exception) { LOGCore.Trace(LOGCore.ST.Day, "【XMLHelper】", exception.ToString()); return(null); } }
public static string HttpPost(string url, string data, System.Text.Encoding encoding) { try { byte[] bData = encoding.GetBytes(data); HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(url); WebReq.Method = "POST"; WebReq.ContentType = "application/x-www-form-urlencoded"; WebReq.ContentLength = bData.Length; Stream PostData = WebReq.GetRequestStream(); PostData.Write(bData, 0, bData.Length); PostData.Close(); HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse(); Stream Answer = WebResp.GetResponseStream(); return(getResult(Answer, encoding)); } catch (System.Exception ex) { LOGCore.Trace(LOGCore.ST.Day, "【HttpPost】", ex.ToString()); return(null); } }
/// <summary> /// 读取数据 /// </summary> /// <param name="path">路径</param> /// <param name="node">节点</param> /// <param name="attribute">属性名,非空时返回该属性值,否则返回串联值</param> /// <returns>string</returns> public static string Read(string path, string node, string attribute) { /************************************************** * 使用示列: * XmlHelper.Read(path, "/Node", "") * XmlHelper.Read(path, "/Node/Element[@Attribute='Name']", "Attribute") ************************************************/ var value = ""; try { var xmlDocument = new XmlDocument(); xmlDocument.Load(path); var selectSingleNode = xmlDocument.SelectSingleNode(node); value = attribute.Equals("")? selectSingleNode.InnerText: selectSingleNode.Attributes[attribute].Value; } catch (Exception exception) { LOGCore.Trace(LOGCore.ST.Day, "【XMLHelper】", exception.ToString()); } return(value); }
/// <summary> /// 创建XML文档 /// </summary> /// <param name="name">根节点名称</param> /// <param name="type">根节点的一个属性值</param> /// <returns></returns> public static XmlDocument CreateXmlDocument(string name, string type) { /************************************************** * .net中调用方法:写入文件中,则: * document = XmlOperate.CreateXmlDocument("sex", "sexy"); * document.Save("c:/bookstore.xml"); ************************************************/ XmlDocument xmlDocument; try { xmlDocument = new XmlDocument(); xmlDocument.LoadXml("<" + name + "/>"); var rootElement = xmlDocument.DocumentElement; rootElement.SetAttribute("type", type); } catch (Exception exception) { LOGCore.Trace(LOGCore.ST.Day, "【XMLHelper】", exception.ToString()); return(null); } return(xmlDocument); }
/// <summary> /// 读取XML资源到DataSet中 /// </summary> /// <param name="source">XML资源,文件为路径,否则为XML字符串</param> /// <param name="xmlType">XML资源类型</param> /// <returns>DataSet</returns> public static DataSet GetDataSet(string source, XmlType xmlType) { try { var dataSet = new DataSet(); if (xmlType == XmlType.File) { dataSet.ReadXml(source); } else { var xmlDocument = new XmlDocument(); xmlDocument.LoadXml(source); var xmlNodeReader = new XmlNodeReader(xmlDocument); dataSet.ReadXml(xmlNodeReader); } return(dataSet); } catch (Exception exception) { LOGCore.Trace(LOGCore.ST.Day, "【XMLHelper】", exception.ToString()); return(null); } }
/// <summary> /// 读取XML资源中指定的DataTable的指定行指定列的值 /// </summary> /// <param name="source">XML资源</param> /// <param name="xmlType">XML资源类型:文件,字符串</param> /// <param name="tableName">表名</param> /// <param name="rowIndex">行号</param> /// <param name="colIndex">列号</param> /// <returns>值,不存在时返回Null</returns> public static object GetTableCell(string source, XmlType xmlType, string tableName, int rowIndex, int colIndex) { try { var dataSet = new DataSet(); if (xmlType == XmlType.File) { dataSet.ReadXml(source); } else { var xmlDocument = new XmlDocument(); xmlDocument.LoadXml(source); var xmlNodeReader = new XmlNodeReader(xmlDocument); dataSet.ReadXml(xmlNodeReader); } return(dataSet.Tables[tableName].Rows[rowIndex][colIndex]); } catch (Exception exception) { LOGCore.Trace(LOGCore.ST.Day, "【XMLHelper】", exception.ToString()); return(null); } }
/// <summary> /// post /// </summary> /// <param name="url">POST请求的地址</param> /// <param name="paramList">参数列表 例如 name=zhangsan&pass=lisi</param> /// <param name="referer">来源地址</param> /// <returns></returns> public static string Post(String url, String paramList, string referer) { HttpWebResponse res = null; HttpWebRequest req = null; string strResult = ""; try { req = (HttpWebRequest)WebRequest.Create(url); //配置请求header req.Headers.Add(HttpRequestHeader.AcceptCharset, "GBK,utf-8;q=0.7,*;q=0.3"); req.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate,sdch"); req.Headers.Add(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.8"); req.Accept = "application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"; req.KeepAlive = true; req.Referer = referer; req.Headers.Add(HttpRequestHeader.CacheControl, "max-age=0"); req.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.5 Safari/534.7"; req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded"; req.AllowAutoRedirect = true; StringBuilder UrlEncoded = new StringBuilder(); //对参数进行encode Char[] reserved = { '?', '=', '&' }; byte[] SomeBytes = null; if (paramList != null) { int i = 0, j; while (i < paramList.Length) { j = paramList.IndexOfAny(reserved, i); if (j == -1) { UrlEncoded.Append(HttpUtility.UrlEncode(paramList.Substring(i, paramList.Length - i))); break; } UrlEncoded.Append(HttpUtility.UrlEncode(paramList.Substring(i, j - i))); UrlEncoded.Append(paramList.Substring(j, 1)); i = j + 1; } SomeBytes = Encoding.UTF8.GetBytes(UrlEncoded.ToString()); req.ContentLength = SomeBytes.Length; Stream newStream = req.GetRequestStream(); newStream.Write(SomeBytes, 0, SomeBytes.Length); newStream.Close(); } else { req.ContentLength = 0; } //返回请求 res = (HttpWebResponse)req.GetResponse(); Encoding encode = System.Text.Encoding.GetEncoding("utf-8"); Stream responseStream = null; if (res.ContentEncoding.ToLower() == "gzip") { responseStream = new System.IO.Compression.GZipStream(res.GetResponseStream(), System.IO.Compression.CompressionMode.Decompress); } else if (res.ContentEncoding.ToLower() == "deflate") { responseStream = new System.IO.Compression.DeflateStream(res.GetResponseStream(), System.IO.Compression.CompressionMode.Decompress); } else { responseStream = res.GetResponseStream(); } StreamReader sr = new StreamReader(responseStream, encode); strResult = sr.ReadToEnd(); } catch (Exception ex) { LOGCore.Trace(LOGCore.ST.Day, "【HttpHelper】", ex.ToString()); } finally { res.Close(); } return(strResult); }