/// <summary>
/// 返回实体类List
/// </summary>
/// <param name="filePath">xml文件目录</param>
/// <param name="nodeParentName">父结点名称</param>
/// <param name="nodeName">结点名称</param>
/// <param name="nodeAncestorsName">祖父结点名称</param>
/// <returns></returns>
public static List<T> ConverToModelList(string filePath, string nodeParentName, string nodeName, string nodeAncestorsName = "")
{
List<T> lists = new List<T>();
XElement xe = XElement.Load(@filePath);
XElement ancestors = string.IsNullOrEmpty(nodeAncestorsName) ? xe.Element(nodeParentName) : xe.Element(nodeAncestorsName).Element(nodeParentName);
IEnumerable<XElement> childrenItems = ancestors.Elements(nodeName);
foreach (XElement node in childrenItems)
{
T SampleModel = new T();
foreach (XElement item in node.Elements())
{
foreach (PropertyInfo property in SampleModel.GetType().GetProperties())
{
if (item.Name == property.Name)
{
if (item.Value != "[Null]")
{
property.SetValue(SampleModel,
Convert.ChangeType(item.Value, property.PropertyType),
null);
break;
}
else
property.SetValue(SampleModel, null, null);
}
}
}
lists.Add(SampleModel);
}
return lists;
}