LINQ TO XML C#实例 类和XML文件互转换

XML TO LINQ C#实例 类和XML文件互转换

xml文件

<?xml version="1.0" encoding="utf-8" ?>
<User>
  <UserID>34e4257b-b364-4ddc-979d-bcfbb5288f5a</UserID>
  <Films>
    <Film>
      <Title>蜘蛛侠</Title>
      <ID>30</ID>
    </Film>
    <Film>
      <Title>天生一对</Title>
      <ID>65</ID>
    </Film>
    <Film>
      <Title>山楂树之恋</Title>
      <ID>130</ID>
    </Film>
  </Films>
</User>

 

类1

public class FavoritesInfo
   {
       public string UserID { get; set; }
 
       private List<FilmInfo> _ListFilm = new List<FilmInfo>();
       public List<FilmInfo> ListFilm
       {
           get { return _ListFilm; }
           set { _ListFilm=value;}
       }
   }
 

 

类2

public class FilmInfo
  {
      public string ID { get; set; }
      public string Title { get; set; }
      public string Img { get; set; }
      public string Tags { get; set; }
      //public string FlashLink { get; set; }
      public List<FlashLinkInfo> ListFlash { get; set; }
      public string CreationYear { get; set; }
      public string Scores { get; set; }
      /// <summary>
      /// 简介
      /// </summary>
      public string Intro { get; set; }
      /// <summary>
      /// 主演
      /// </summary>
      public string Author { get; set; }
      public string FlashLink { get; set; }
  }
 

 

读xml文件 转成类

public List<FavoritesInfo> GetFavorites()
     {
         List<FavoritesInfo> listFavorites = new List<FavoritesInfo>();
         // 读xml文件
         // string xmlFile = Server.MapPath("DvdList.xml"); //获取XML文件的路径
         // XDocument doc = XDocument.Load(xmlFile);    

         string strXml =  ReadXmlData();
         if (!string.IsNullOrEmpty(strXml))
         {
             byte[] bs = Encoding.UTF8.GetBytes(strXml);
             MemoryStream ms = new MemoryStream(bs);
             XDocument xdoc = XDocument.Load(ms);
 
             listFavorites = (
     from favoriteinfo in xdoc.Descendants("User")
     select new FavoritesInfo
     {
         UserID = favoriteinfo.Element("UserID").Value.Trim(),
         ListFilm = (
         from filminfo in favoriteinfo.Descendants("Film") // xdoc.Descendants("rows")
         select new FilmInfo
         {
             ID = filminfo.Element("ID").Value,
             Title = filminfo.Element("Title").Value,
         }
         ).ToList(),
 
     }
  ).ToList();
 
         }
         return listFavorites;
     }
 

 

C#类转成xml文件

public void SaveFavorites(FavoritesInfo favoriteInfo)
       {
           if (favoriteInfo == null) return;
 
           XElement xml = new XElement("User", new XElement("UserID", favoriteInfo.UserID),
          new XElement("Films",
              from p in favoriteInfo.ListFilm
              select new XElement("Film",
                   new XElement("Title", p.Title),
                     new XElement("ID", p.ID)
                               )
                               )
              );
// 保存xml文件 到磁盘上
           //CreatXmlData(xml.ToString());
    
    
XDocument doc = new XDocument(new XDeclaration("1.0", "utf-8", ""));

doc.Add(xml);  

doc.Save(fileName);

       }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值