📜  LINQ to XML

📅  最后修改于: 2021-01-06 06:03:52             🧑  作者: Mango

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->转到文件->选择新建->选择项目,如下所示。

选择项目后,将打开一个新的弹出窗口。从那里我们必须选择“ Asp.Net Empty Web Application ”,名称为“ LINQtoXML”,然后单击“ OK ”按钮,如下所示:

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

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

添加文件后,我们将打开它并添加一些记录,如下所示:




  

    1

    Akshay

    10000

    Female

  

  

    2

    Shalu

    20000

    Female

  

  

    3

    Akki

    30000

    Male

  

  

    4

    Sateesh

    50000

    Male

  

  

    5

    Sushmitha

    60000

    Female

  


现在,我们将在我们的应用程序中显示“ XMLFile.xml数据。为此,我们必须右键单击应用程序→选择“添加”->“新建项”->“选择Web表单”->“将名称作为Default1.aspx” ,然后单击“确定”按钮。

现在打开“ Default1.aspx”页面,并编写如下所示的代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>





    


    

现在打开文件后面的代码并编写以下代码:

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数据上写入条件以获取“ Salary ”大于等于的记录。到“ 2000”。现在,我们将运行并查看应用程序的结果。

输出值