Linq没有输出到XML

我有以下代码:

protected void Page_Load(object sender, EventArgs e) { XElement xml = XElement.Load(Server.MapPath("ArenasMembers.xml")); var query = from p in xml.Descendants("members") select new { Name = p.Element("name").Value, Email = p.Attribute("email").Value }; foreach (var member in query) { Response.Write("Employee: " + member.Name + " " + member.Email + "
"); } }

其中,使用Visual Studio中的hover信息正在正确读取XNL文件,但是foreach没有输出任何记录。

XML:

    EAA Office 1 Jane Doe test@gmail.com   EAA Office 2 John Bull jb@ehotmail.org   O2 Arena 3 John Doe john.doe@o2arena.co.uk   O2 Arena 4 Bernard Cribbins bernard@gmail.com   Colourline Arena 5 John Bon Jovi jbj@gmail.com   NIA 6 Rhianna skimpy@gmail.com   

你能看出出了什么问题吗?

“会员”的遗嘱尝试“会员”……

Descendants返回给定元素下的所有子元素,在您的代码中,您查询具有nameemail members ,这些Element不起作用。

示例代码:

  var query = from p in xml.Descendants("member") select new { Name = p.Element("name").Value, Email = p.Element("email").Value }; 

将属性(“电子邮件”)更改为元素(“电子邮件”)对我来说很合适。 经过测试,希望获得批准。

  public void XMLTEst() { var xml = @"" + " " + " " + " EAA Office " + " 1 " + " Jane Doe " + " test@gmail.com " + "  " + "  " + " EAA Office " + " 2 " + " Linda Bull " + " linda.bull@eaaoffice.org " + "  " + "  " + " O2 Arena " + " 3 " + " John Doe " + " john.doe@o2arena.co.uk " + "  " + "  " + " O2 Arena " + " 4 " + " Bernard Cribbins " + " bernard@gmail.com " + "  " + "  " + " Colourline Arena " + " 5 " + " John Bon Jovi " + " jbj@gmail.com " + "  " + "  " + " NIA " + " 6" + " Rhianna" + " skimpy@gmail.com" + " " + ""; XElement xmlFile = XElement.Parse(xml); var query = from p in xmlFile.Descendants("member") select new { Name = p.Element("name").Value, Email = p.Element("email").Value }; foreach (var member in query) { Response.Write("Employee: " + member.Name + " " + member.Email + "
"); } }