using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using System.Xml.Serialization;
namespace Utils
{
public static class XmlUtils
{
///
/// 将object转换成xml格式的string
///
///
///
public static string Object2XmlString(Object o)
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = false;
settings.NewLineHandling = NewLineHandling.None;
settings.Encoding = Encoding.UTF8;
settings.OmitXmlDeclaration = true;
XmlSerializer xs = new XmlSerializer(o.GetType());
using (StringWriter ws = new StringWriter())
{
XmlWriter w = XmlWriter.Create(ws, settings);
try
{
XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
namespaces.Add(string.Empty, string.Empty);
xs.Serialize(w, o, namespaces);
return ws.ToString();
} finally
{
w.Dispose();
}
}
}
///
/// 将xml格式的string转换层实体类
///
///
///
///
public static T XmlString2Object(string xmlStr)
{
using (MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(xmlStr)))
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
return (T)serializer.Deserialize(stream);
}
}
///
/// 将xml格式stream转换层实体类
///
///
///
///
public static T XmlStream2Object(Stream stream)
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
return (T)serializer.Deserialize(stream);
}
///
/// 将xml格式文件转换层实体类
///
///
///
///
public static T XmlFile2Object(string fileName)
{
using (Stream stream = new FileStream(fileName, FileMode.Open))
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
return (T)serializer.Deserialize(stream);
}
}
}
}