111,093
社区成员




<books>
<book name="三国演义" author="罗贯中" price= "55" count="3" ></book>
<book name="水浒传" author="施耐庵" price= "75" count="10" ></book>
<book name="西游记" author="吴承恩" price= "60" count="12" ></book>
<book name="红楼梦" author="曹雪芹" price= "80" count="2" ></book>
</books>
var result = from x in xDocument.Descendants("book").Attributes()
select new { x.Name, x.Value };
public List<book> books{get;set;}
public class book
{
public string name{get;set;}
public string author{get;set;}
public string price{get;set;}
public string count{get;set;}
}
当你拥有实体后,就需要将实体序列化为xml以及反序列化
using System.Xml.Serialization;
/// <summary>
/// 将List(T)序列化为xml并以StringWriter返回
/// </summary>
/// <typeparam name="T">实体-可省略</typeparam>
/// <param name="entity">传入List(实体)</param>
/// <returns>返回StringWriter的字符串</returns>
public static StringWriter ListToXml<T>(List<T> entity)
{
var writer = new XmlSerializer(typeof(List<T>));
StringWriter str = new StringWriter();
writer.Serialize(str, entity);
return str;
}
/// <summary>
/// 接收StringWriter后反序列化为List[实体]
/// </summary>
/// <typeparam name="T">实体-必须有不然无法反序列化</typeparam>
/// <param name="stream">StringWriter的字符串</param>
/// <returns>返回List[实体]</returns>
public static List<T> XmlToList<T>(string stream)
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(List<T>));
StringReader strReader = new StringReader(stream);
return (List<T>)xmlSerializer.Deserialize(strReader);
}
以上就是大致的序列化