LINQ转XML

它是一个编程接口, 使我们能够在XML文档上编写LINQ查询以获取所需的数据。
LINQ to XML将XML文档带入内存, 并允许我们在内存XML文档中编写LINQ查询以获取XML文档元素和属性。
要在我们的应用程序中使用LINQ to XML功能, 我们需要添加” System.Xml.Linq” 命名空间引用。
LINQ to XML的语法
这是在XML数据上编写LINQ查询的语法。

XElement doc = XElement.Load(Server.MapPath("EmployeeDetails.xml")); var result = from ed in doc.Descendants("employee")select new{Id = ed.Element("empid").Value, Name = ed.Element("empname").Value};

从以上语法中, 我们正在读取xml文件的数据, 并编写LINQ查询以从XML获取所需的数据。
LINQ to XML示例
现在, 我们将通过示例了解如何在asp.net Web应用程序中将XML与LINQ查询一起使用。要创建该应用程序, 我们必须遵循以下步骤。打开Visual Studio-> 转到文件-> 选择新建-> 选择项目, 如下所示。
LINQ转XML

文章图片
选择项目后, 将打开一个新的弹出窗口。从那里我们必须选择” Asp.Net空Web应用程序” , 将名称命名为” LINQtoXML” , 然后单击” 确定” 按钮, 如下所示:
LINQ转XML

文章图片
为了使用LINQ和XML, 我们将在我们的应用程序中添加一个XML文件。为此, 我们将右键单击应用程序-> 选择添加-> 选择新项目, 如下所示:
LINQ转XML

文章图片
单击新项目后, 将打开一个新弹出窗口, 从数据部分中选择XML文件→为XML File-> Click Add按钮命名, 如下所示。
LINQ转XML

文章图片
添加文件后, 我们将打开它并添加一些记录, 如下所示:
< ?xml version="1.0" encoding="utf-8" ?> < Employees> < employee> < empid> 1< /empid> < empname> Akshay< /empname> < salary> 10000< /salary> < gender> Female< /gender> < /employee> < employee> < empid> 2< /empid> < empname> Shalu< /empname> < salary> 20000< /salary> < gender> Female< /gender> < /employee> < employee> < empid> 3< /empid> < empname> Akki< /empname> < salary> 30000< /salary> < gender> Male< /gender> < /employee> < employee> < empid> 4< /empid> < empname> Sateesh< /empname> < salary> 50000< /salary> < gender> Male< /gender> < /employee> < employee> < empid> 5< /empid> < empname> Sushmitha< /empname> < salary> 60000< /salary> < gender> Female< /gender> < /employee> < /Employees>

现在, 我们将在应用程序中显示” XMLFile.xml” 数据。为此, 我们必须右键单击应用程序→选择” 添加” -> ” 新建项目” -> ” 选择Web表单” -> ” 将名称作为Default1.aspx” , 然后单击” 确定” 按钮。
现在打开” Default1.aspx” 页面, 并编写如下代码:
< %@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> < !DOCTYPE html> < html xmlns="http://www.w3.org/1999/xhtml"> < head runat="server"> < title> < /title> < /head> < body> < form id="form1" runat="server"> < div class="GridviewDiv"> < asp:GridView ID="gvDetails" runat="server"> < HeaderStyle CssClass="headerstyle" /> < /asp:GridView> < /div> < /form> < /body> < /html

现在打开文件后面的代码并编写以下代码:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Xml.Linq; public partial class _Default : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){if (!Page.IsPostBack){XElement doc = XElement.Load(Server.MapPath("XMLFile.xml")); var result = from ed in doc.Descendants("employee")where Convert.ToInt32(ed.Element("salary").Value) > = 20000select new{Id = ed.Element("empid").Value, Name = ed.Element("empname").Value, Salary = ed.Element("salary").Value, Gender = ed.Element("gender").Value}; gvDetails.DataSource = result; gvDetails.DataBind(); }}}

如果观察上面的示例, 我们添加了类似” System.Xml.Linq” 的名称空间, 它将允许我们读取xml文档数据, 并且我们可以在XML数据上写入条件以获取” 薪水” 大于等于的记录。到” 2000″ 。现在, 我们将运行并查看应用程序的结果。
【LINQ转XML】输出
LINQ转XML

文章图片

    推荐阅读