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
返回给定元素下的所有子元素,在您的代码中,您查询具有name
和email
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 + "
"); } }