using Microsoft.AspNetCore.Mvc.ViewFeatures;
using System;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
namespace IStation.Application
{
///
///
///
///
public class XmlHelper where T : class
{
///
/// 对象生成Xml文档
///
public string ObjectToXml(T obj)
{
using (TextWriter writer = new StringWriter())
{
XmlSerializer serializer = new XmlSerializer(obj.GetType());
serializer.Serialize(writer, obj) ;
return writer.ToString();
}
}
///
/// xml文档生成类
///
public T XmlToObject(string xmlStr)
{
try
{
using (StringReader reader = new StringReader(xmlStr))
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
return serializer.Deserialize(reader) as T;
}
}
catch (Exception ex)
{
var a = ex.Message;
return null;
}
}
///
/// 数据输出,序列化xml文本
///
///
public static string FileOutput(T obj)
{
var xml = string.Empty;
try
{
using (MemoryStream ms = new MemoryStream())
{
var setting = new XmlWriterSettings()
{
Encoding = new UTF8Encoding(false),
Indent = true,
};
using (XmlWriter writer = XmlWriter.Create(ms, setting))
{
XmlSerializer xmlSearializer = new XmlSerializer(obj.GetType());
xmlSearializer.Serialize(writer, obj);
xml= Encoding.UTF8.GetString(ms.ToArray());
}
}
}
catch (Exception)
{
LogHelper.Error("报表Json文件格式化失败! ");
}
return xml;
}
///
/// 保存对象到xml文件中
///
///
///
///
public static void SaveObjectXmlFile(string fileName, T t) where T : class
{
var str = XmlHelper.FileOutput(t);
UTF8Encoding utf8 = new UTF8Encoding(false);
File.WriteAllText(fileName, str, utf8);
}
}
}