博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
好用的XML序列,简单接口
阅读量:4611 次
发布时间:2019-06-09

本文共 2737 字,大约阅读时间需要 9 分钟。

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

你可能感兴趣的文章
Oracle数据库用户权限和管理员权限
查看>>
PHP抓取页面的几种方式
查看>>
【洛谷1829】 [国家集训队] Crash的数字表格(重拾莫比乌斯反演)
查看>>
vector函数用法
查看>>
按位与、或、非、异或总结
查看>>
[poj-2104]K-th Number 主席树 可持久化线段树 入门
查看>>
多级菜单导航栏
查看>>
Understanding Kafka Consumer Groups and Consumer Lag
查看>>
什么是猴子补丁
查看>>
1.4_数据的特征选择
查看>>
[转]免费api大全
查看>>
python函数调用顺序、高阶函数、嵌套函数、闭包详解
查看>>
git 认证问题之一的解决 : http ssh 互换
查看>>
sql where 1=1作用
查看>>
搜索算法----二分查找
查看>>
Python语言编程
查看>>
事务并发、事务隔离级别 .
查看>>
[poj 1469]Courses
查看>>
Xcode8出现AQDefaultDevice(173):Skipping input stram 0 0 0x0
查看>>
数据结构(二十四)二叉树的链式存储结构(二叉链表)
查看>>