它是一个编程接口, 使我们能够在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->转到文件->选择新建->选择项目, 如下所示。
选择项目后, 将打开一个新的弹出窗口。从那里我们必须选择” Asp.Net空Web应用程序”, 将名称命名为” LINQtoXML”, 然后单击”确定”按钮, 如下所示:
为了使用LINQ和XML, 我们将在我们的应用程序中添加一个XML文件。为此, 我们将右键单击应用程序->选择添加->选择新项目, 如下所示:
单击新项目后, 将打开一个新弹出窗口, 从数据部分中选择XML文件→为XML File-> Click Add按钮命名, 如下所示。
添加文件后, 我们将打开它并添加一些记录, 如下所示:
<?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) >= 20000
select 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″。现在, 我们将运行并查看应用程序的结果。
输出