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 1

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

LINQ转XML 2

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

LINQ转XML 3

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

<?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″。现在, 我们将运行并查看应用程序的结果。

输出

LINQ转XML 4

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?