你的位置:首页 > ASP.net教程

[ASP.net教程]Linq to XML操作XML文件


LINQ的类型

在MSDN官方文件中,LINQ分为几种类型:

LINQ to Objects(或称LINQ to Collection),这是LINQ的基本功能,针对集合对象进行查询处理,包括基本的汇总与过滤都在这个功能内实现。

LINQ to SQL,这是LINQ功能的SQL Server数据库版本,通过LINQ指令,可以直接查询SQL Server数据库,而完全无须编写SQL指令,这个功能在推出初期受到了相当大的关注,目前这个功能已经融入EF内。

LINQ to

LINQ to DataSet(或称LINQ to ADO.NET),是为现有以DataSet或DataTable对象开发应用程序提供支持LINQ操作的功能,以AsEnumerate()为基础,将DataSet与DataTable内的数据转换成IEnumerable接口的集合对象,即可直接使用LINQ to Objects的方式查询。

什么是LINQ to

LINQ to

LINQ to 您可以查询和修改 但是,LINQ to

LINQ to 由于实现了这一集成,因此,可以对内存 LINQ to Visual C# 2008 集成 LINQ 后,可提供更强的类型化功能、编译时检查和改进的调试器支持。

LINQ to 这种方法称为“函数构造”,利用这种方法,开发人员可以方便地将

下面是对于

1、导出

 

    /// <summary>    /// 导出/// </summary>    /// <returns></returns>    public ActionResult Reporttry      {#if DEBUG        List<UserInfo> user = new List<UserInfo>()                {                 new UserInfo(){UserId="1",UserName="张三",UserSex="男",UserAge=18},                new UserInfo(){UserId="2",UserName="李四",UserSex="男",UserAge=18},                new UserInfo(){UserId="3",UserName="王五",UserSex="男",UserAge=18},                new UserInfo(){UserId="4",UserName="赵六",UserSex="女",UserAge=18},                };#endif        = new @"C:\User.", null);        // 设置缩进        my Formatting.Indented;        // 编写版本为“1.0”并具有独立特性的         myfalse);        my"UserInfo");        // 注释        my"记录用户的信息");        foreach (var item in user)        {          my"User");          my"UserId", item.UserId.ToString());          my"UserName", item.UserName);          my"UserSex", item.UserSex);          my"UserAge", item.UserAge.ToString());          myreturn Json(new { msg = "导出成功" }, JsonRequestBehavior.AllowGet);      }      catch (Exception)      {        return Json(new { msg = "导出失败" }, JsonRequestBehavior.AllowGet);      }    }

2、读取

 

    /// <summary>    /// 读取/// </summary>    /// <returns></returns>    public ActionResult Read<UserInfo> list = new List<UserInfo>();      XElement xe = XElement.Load(@"C:\User.");      IEnumerable<XElement> elements = from p in xe.Elements("User") select p;      foreach (var item in elements)      {        UserInfo user = new UserInfo();        user.UserId = item.Attribute("UserId").Value;        user.UserName = item.Element("UserName").Value;        user.UserSex = item.Element("UserSex").Value;        user.UserAge = int.Parse(item.Element("UserAge").Value);        list.Add(user);      }      return Json(list.ToList(), JsonRequestBehavior.AllowGet);    }

3、删除一条

 

    /// <summary>    /// 删除/// </summary>    /// <param name="userId"></param>    /// <returns></returns>    public ActionResult Deletestring userId)    {      try      {        XElement xe = XElement.Load(@"C:\User.");        IEnumerable<XElement> elements = from p in xe.Elements("User")                         where p.Attribute("UserId").Value == userId.ToString()                         select p;        if (elements.Count() > 0)        {          elements.Remove();        }        xe.Save(@"C:\User.");        return Json(new { flag = true }, JsonRequestBehavior.AllowGet);      }      catch (Exception)      {        return Json(new { flag = false }, JsonRequestBehavior.AllowGet);      }    }

 

4、添加一条

 

    /// <summary>    /// 新增/// </summary>    /// <returns></returns>    public ActionResult Addtry      {        XElement xe = XElement.Load(@"C:\User.");        XElement record = new XElement(                 new XElement("User",                 new XAttribute("UserId", Guid.NewGuid()),                 new XElement("UserName", "张学友"),                 new XElement("UserSex", "男"),                 new XElement("UserAge", "20")                 ));        xe.Add(record);        xe.Save(@"C:\User.");        return Json(new { flag = true }, JsonRequestBehavior.AllowGet);      }      catch (Exception)      {        return Json(new { flag = false }, JsonRequestBehavior.AllowGet);      }    }

 

5、修改一条

 

    /// <summary>    /// 编辑/// </summary>    /// <param name="userId"></param>    /// <returns></returns>    public ActionResult Editstring userId)    {      try      {        XElement xe = XElement.Load(@"C:\User.");        IEnumerable<XElement> elements = from p in xe.Elements("User")                         where p.Attribute("UserId").Value == userId.ToString()                         select p;        if (elements.Count() > 0)        {          XElement model = elements.FirstOrDefault();          // 设置新属性          model.SetAttributeValue("UserId", userId);          // 更新新节点          model.ReplaceNodes            (            new XElement("UserName", "周杰伦"),            new XElement("UserSex", "男"),            new XElement("UserAge", 30)            );        }        xe.Save(@"C:\User.");        return Json(new { flag = true }, JsonRequestBehavior.AllowGet);      }      catch (Exception)      {        return Json(new { flag = false }, JsonRequestBehavior.AllowGet);      }    }

 6、前台页面代码

 

@{  Layout = null;}<!DOCTYPE html><html><head>  <meta name="viewport" content="width=device-width" />  <title>Index</title>  <script src="~/Scripts/jquery-1.10.2.js"></script>  <script type="text/javascript">    $(function () {      $("#btnReport").click(function () {        Report"#btnRead").click(function () {        Readfunction (e) {          Deletethis).attr("userId"));        }      }, ".btndelete");      $("#btnAdd").click(function () {        Addfunction (e) {          Editthis).attr("userId"));        }      }, ".btnEdit");    });    // 导出    function Reportvar option =        {          url: '/',          type: "post",          success: function (data) {            if (data.msg) {              alert("导出成功!");            }            else {              alert("导出失败!");            }          }        };      $.ajax(option);    }    // 读取    function Readvar option =        {          url: '/',          type: "get",          success: function (data) {            $("#tb_table tr:gt(0)").remove();            var html = "";            $.each(data, function (index, item) {              html += "<tr>";              html += "<td>" + item.UserName + "</td>";              html += "<td>" + item.UserSex + "</td>";              html += "<td>" + item.UserAge + "</td>";              html += "<td><input class='btndelete' type='button' userId='" + item.UserId + "' value='删除'/><input class='btnEdit' type='button' userId='" + item.UserId + "' value='修改'/></td>";              html += "</tr>";            });            $("#tb_table").append(html);          }        };      $.ajax(option);    }    // 删除    function Deleteif (confirm("确定要删除吗?")) {        var option =        {          url: '/',          type: 'get',          data: { userId: userId },          success: function (data) {            if (data.flag) {              alert("删除成功!");              Readelse {              alert("删除失败!");            }          }        };        $.ajax(option);      }    }    // 添加    function Addvar options =      {        url: '/',        type: 'get',        success: function (data) {          if (data.flag) {            alert("新增成功!");            Readelse {            alert("新增失败!");          }        }      };      $.ajax(options);    }    // 修改    function Editvar options =      {        url: '/',        type: 'get',        data: { userId: userId },        success: function (data) {          if (data.flag) {            alert("修改成功!");            Readelse {            alert("修改失败!");          }        }      };      $.ajax(options);    }  </script></head><body>  <div>    <input type="button" value="导出 id="btnReport" />    <input type="button" value="读取 id="btnRead" />    <input type="button" value="添加 id="btnAdd" />  </div>  <br /><br />  <table id="tb_table" border="1">    <tr>      <td>姓名</td>      <td>性别</td>      <td>年龄</td>      <td>操作</td>    </tr>  </table>  <br /></body></html>

 7、页面效果

权责申明

作者:SportSky 出处: http://www.cnblogs.com/sportsky/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如果觉得还有帮助的话,可以点一下右下角的【推荐】,希望能够持续的为大家带来好的技术文章!想跟我一起进步么?那就【关注】我吧。