好用的XML序列,简单接口

using System;

using  System.Collections.Generic;
using  System.Linq;
using  System.Text;
using  System.Data;
using  System.IO;
using  System.Xml.Serialization;
using  System.Xml;
namespace  WFXML
{
     public  class  XmlUtil
     {
      
         #region 反序列化
         /// <summary>
         /// 反序列化
         /// </summary>
         /// <param name="type">类型</param>
         /// <param name="xml">XML字符串</param>
         /// <returns></returns>
         public  static  object  Deserialize(Type type,  string  xml)
         {
             try
             {
                 using  (StringReader sr =  new  StringReader(xml))
                 {
                     XmlSerializer xmldes =  new  XmlSerializer(type);
                     return  xmldes.Deserialize(sr);
                 }
             }
             catch  (Exception e)
             {
                 return  null ;
             }
         }
         /// <summary>
         /// 反序列化
         /// </summary>
         /// <param name="type"></param>
         /// <param name="xml"></param>
         /// <returns></returns>
         public  static  object  Deserialize(Type type, Stream stream)
         {
             XmlSerializer xmldes =  new  XmlSerializer(type);
             return  xmldes.Deserialize(stream);
         }
         #endregion
         #region 序列化XML文件
         /// <summary>
         /// 序列化XML文件
         /// </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();
             return  str;
         }
         #endregion
         #region 将XML转换为DATATABLE
         /// <summary>
         /// 将XML转换为DATATABLE
         /// </summary>
         /// <param name="FileURL"></param>
         /// <returns></returns>
         public  static  DataTable XmlAnalysisArray()
         {
             try
             {
                 string  FileURL = System.Configuration.ConfigurationManager.AppSettings[ "Client" ].ToString();
                 DataSet ds =  new  DataSet();
                 ds.ReadXml(FileURL);
                 return  ds.Tables[0];
             }
             catch  (Exception ex)
             {
                 System.Web.HttpContext.Current.Response.Write(ex.Message.ToString());
                 return  null ;
             }
         }
         /// <summary>
         /// 将XML转换为DATATABLE
         /// </summary>
         /// <param name="FileURL"></param>
         /// <returns></returns>
         public  static  DataTable XmlAnalysisArray( string  FileURL)
         {
             try
             {
                 DataSet ds =  new  DataSet();
                 ds.ReadXml(FileURL);
                 return  ds.Tables[0];
             }
             catch  (Exception ex)
             {
                 System.Web.HttpContext.Current.Response.Write(ex.Message.ToString());
                 return  null ;
             }
         }
         #endregion
         #region 获取对应XML节点的值
         /// <summary>
         /// 摘要:获取对应XML节点的值
         /// </summary>
         /// <param name="stringRoot">XML节点的标记</param>
         /// <returns>返回获取对应XML节点的值</returns>
         public  static  string  XmlAnalysis( string  stringRoot,  string  xml)
         {
             if  (stringRoot.Equals( "" ) ==  false )
             {
                 try
                 {
                     XmlDocument XmlLoad =  new  XmlDocument();
                     XmlLoad.LoadXml(xml);
                     return  XmlLoad.DocumentElement.SelectSingleNode(stringRoot).InnerXml.Trim();
                 }
                 catch  (Exception ex)
                 {
                    
                 }
             }
             return  "" ;
         }
         #endregion
     }
}

转载于:https://www.cnblogs.com/liyangqq/p/7299061.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值