65.9K
CodeProject 正在变化。 阅读更多。
Home

LINQ to XML 通过其属性检索元素值

starIconstarIconstarIconstarIconstarIcon

5.00/5 (2投票s)

2009 年 7 月 27 日

CPOL
viewsIcon

110234

使用 LINQ to XML 通过其属性检索元素值。

引言

本文介绍了如何根据属性值检索元素的值。

场景

我有一个网站,需要读取一些静态数据,但希望随时能够更新它,所以我决定从 XML 文件中读取数据并使用 LINQ to XML。经过一段时间的摸索和在各处搜索,我对这个想法有了更好的理解,所以决定与大家分享。

Using the Code

我们将创建一个 XML 文件和一个类来从中获取数据

  1. XML 文件 "Actions.xml"
  2. <?xml version="1.0" encoding="utf-8" ?>
    <Actions>
    <Action id="SignIn">1</Action>
    <Action id="SignOut">2</Action>
    <Action id="Open">3</Action>
    </Actions>
  3. 类 "Actions.cs"
  4. 我们将使类的构造函数成为将数据获取到类中变量的函数。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Xml.Linq;
    
    public class Actions
    {
        int signIn, signOut, open;
        public int SignIn
        {
            get { return signIn; }
        }
    
        public Actions()
        {
            XElement xe = XElement.Load(@"C:\Users\ADELOooO\Documents\
            Visual Studio 10\WebSites\LinQReadXML\Actions.xml");
            var x = from a in xe.Elements("Action")
              Where a.Attribute("id").Value == "SignIn"
              select a.Value;
            signIn = int.Parse(x.First().ToString());
        }
    }

    我们上面使用了 signin 变量作为示例,但您可以将其用于所有变量。

  5. 调用该方法的网页后台代码如下所示
  6. using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    public partial class _Default : System.Web.UI.Page 
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
    
        protected void Button1_Click(object sender, EventArgs e)
        {
            Actions a = new Actions();
            TextBox1.Text = a.SignIn.ToString();
        }
    }

关注点

我使用 VSTS 10 beta 创建了这个项目。希望对您有所帮助。

© . All rights reserved.