注意:XML字符转为对象,XML节点需要与类名,属性名一致
笔记:XML结果:<Group><RowID>1</RowID><RowID>2</RowID></Group> 可以使用XMLArrayItem属性更改子节点的名称
public static class TXmlSerializeHelper
{
/// <summary>
/// 空白字符处理
/// </summary>
/// <param name="aStr"></param>
/// <returns></returns>
public static string WhiteSpaceDel(string aStr) {
aStr = aStr.Replace(" ","");
return aStr;
}
/// <summary>
/// 将实体对象转换成XML
/// </summary>
/// <typeparam name="T">实体类型</typeparam>
/// <param name="obj">实体对象</param>
public static string XmlSerialize<T>(T obj)
{
try
{
using (StringWriter sw = new StringWriter())
{
Type t = obj.GetType();
//设置信息
XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces(new XmlQualifiedName[] {
new XmlQualifiedName(string.Empty) //删除命名空间
});
XmlWriterSettings setting = new XmlWriterSettings();
setting.Indent = true;
setting.OmitXmlDeclaration = true; //声明信息删除
setting.IndentChars = "";
setting.NewLineChars = "\r\n";
setting.Encoding = Encoding.UTF8;
//setting.NamespaceHandling = NamespaceHandling.OmitDuplicates;
//setting.DoNotEscapeUriAttributes = false;
XmlWriter xmlWriter = XmlWriter.Create(sw, setting);
XmlSerializer serializer = new XmlSerializer(obj.GetType());
serializer.Serialize(xmlWriter,obj,namespaces);
xmlWriter.Close();
sw.Close();
return sw.ToString();
}
}
catch (Exception ex)
{
throw new Exception("将实体对象转换成XML异常", ex);
}
}
/// <summary>
/// 将XML转换成实体对象
/// </summary>
/// <typeparam name="T">实体类型</typeparam>
/// <param name="strXML">XML</param>
public static T DESerializer<T>(string strXML) where T : class
{
try
{
using (StringReader sr = new StringReader(strXML))
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
return serializer.Deserialize(sr) as T;
}
}
catch (Exception ex)
{
throw new Exception("将XML转换成实体对象异常", ex);
}
}
}