最近处理数据的时候用到了Xml和其他数据之间的转换,所以整理了一些方法。

class XMLHelper{/// <summary>/// 读取xml模板/// </summary>/// <param name="filename">相对路径</param>/// <returns></returns>public static string Getmsg(string filename){XmlDocument xmldoc = new XmlDocument();string path = AppDomain.CurrentDomain.BaseDirectory;string strUrl = path + filename;xmldoc.Load(strUrl);return xmldoc.InnerXml;}public static XmlDocument GetXmlDoc(string fielName){XmlDocument xmldoc = new XmlDocument();string path = AppDomain.CurrentDomain.BaseDirectory;string strUrl = path + fielName;xmldoc.Load(strUrl);return xmldoc;}public static XmlDocument GetXmlDocument(string xml){XmlDocument xmlDoc = new XmlDocument();if (!string.IsNullOrEmpty(xml)){xmlDoc.LoadXml(xml);}return xmlDoc;}#region 序列化/// <summary>/// 序列化/// </summary>/// <param name="type">类型</param>/// <param name="obj">对象</param>/// <returns></returns>public static string Serializer(Type type, object obj){MemoryStream Stream = new MemoryStream();XmlSerializer xml = new XmlSerializer(type);try{//序列化对象xml.Serialize(Stream, obj);}catch (InvalidOperationException){throw;}Stream.Position = 0;StreamReader sr = new StreamReader(Stream);string str = sr.ReadToEnd();sr.Dispose();Stream.Dispose();return str;}#endregion//反序列化//接收2个参数:xmlFilePath(需要反序列化的XML文件的绝对路径),type(反序列化XML为哪种对象类型)public static object DeserializeFromXml(string xml, Type type){object result = null;try{XmlDocument xmlDoc = new XmlDocument();xmlDoc.LoadXml(xml);MemoryStream ms = new MemoryStream();xmlDoc.Save(ms);ms.Seek(0, SeekOrigin.Begin);XmlSerializer xs = new XmlSerializer(type);result = xs.Deserialize(ms);}catch (Exception ex){throw;}return result;}/// <summary>/// XML转换成DataTable/// </summary>/// <param name="xmlStr"></param>/// <returns></returns>public static DataTable XmlToDataTable(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.Tables[0];}catch (Exception ex){throw;}finally{//释放资源  if (Xmlrdr != null){Xmlrdr.Close();StrStream.Close();StrStream.Dispose();}}}return null;}/// <summary>/// 格式化XML/// </summary>/// <param name="format">XML</param>/// <param name="arg">传递DataRow可以直接格式化,也可以自己实现IFormatProvider</param>/// <param name="formatProvider"></param>/// <returns></returns>public static string Format(string format, object arg){char[] preChar = new char[] { '{' };char[] endChar = new char[] { '}' };DataRow row = arg as DataRow;if (row != null){var RegexStr = string.Format("{0}.+?{1}", string.Join("", preChar.ToArray()), string.Join("", endChar.ToArray()));Regex reg = new Regex(RegexStr);MatchCollection matchList = reg.Matches(format);for (int i = 0; i < matchList.Count; i++){string fieldName = matchList[i].ToString().TrimStart(preChar).TrimEnd(endChar);string fieldVal = string.Empty;if (row.Table.Columns.Contains(fieldName)){fieldVal = row[fieldName].ToString();}format = format.Replace(matchList[i].ToString(), fieldVal);}}return format;}}

  

转载于:https://www.cnblogs.com/qidakang/p/7778167.html

XmlHelpers相关推荐

  1. 关于XML文档操作类

    1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 usin ...

  2. BizTalk 10034 错误

    错误消息: xlang/s engine event log entry: 未捕获的异常(请参阅下面的"内部异常")已经挂起服务"Myapp.Myapp01(6cf1f8 ...

  3. ionic3 php 电商视频,ionic3仿京东商城源码

    [实例简介] ionic3仿京东商城源码,非常好用的ionic3学习参考资料. [实例截图] [核心代码] ionic3仿京东商城源码 ├── README.md ├── config.xml ├── ...

最新文章

  1. android 多个标签页,Android一个标签页的实现
  2. Java System类
  3. java e.getmessage() null_Java e.getMessage 错误信息为null
  4. 958. 二叉树的完全性检验 golang
  5. stc15w4k32s4芯片引脚图片_单片机引脚功能初识及提高(3)
  6. 深入理解K8S网络原理下
  7. android学习笔记---37_采用广播接收者实现系统短信操作_获取短信_收发短信等
  8. 上传图片到服务器不能马上响应,用post方式上传图片到服务器
  9. 各种浏览器开启JavaScript脚本方法
  10. 【安装版】mysql数据库安装指南(超级详细)
  11. C语言中三目运算符的结合性问题
  12. vs2019中出现PyTorch is not linked with support for cuda devices的解决方法
  13. 小球落地c语言编程答案,c语言模拟小球落地
  14. 0x8007000e错误
  15. 十大实用网站推荐(1)
  16. R语言单因素方差分析(附代码)
  17. 甘肃省天水市谷歌卫星地图下载
  18. Cravatar头像
  19. Java专项练习二(选择题)
  20. docker 删除映像_创建自己的Docker映像(技术提示#57)

热门文章

  1. linux环境下protobuf的安装与使用
  2. 三丰三坐标编程基本步骤_日常皮肤护理的基本三步骤,问题皮肤不要作
  3. 网上五花八门的单片机教程,到底应该怎么整理学习过程
  4. html 自定义title,5行JS自定义title提示效果(Tooltip)
  5. gsm模块 java 录音_深入详解Android GSM驱动模块
  6. MyBatis的XML配置文件(三)
  7. 国家开放大学2021春1040公司概论题目
  8. Flask-WTF CSRF 保护P3
  9. 【转】杜月笙识人秘诀!!
  10. 利用curl去hack他人博客