【发布时间】:2010-05-11 12:27:41
【问题描述】:
我有以下代码:
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 + "<br />");
}
}
使用 Visual Studio 中的悬停信息,可以正确读取 XNL 文件,但是 foreach 没有输出任何记录。
XML:
<?xml version="1.0" encoding="utf-8" ?>
<members>
<member>
<arena>EAA Office</arena>
<memberid>1</memberid>
<name>Jane Doe</name>
<email>test@gmail.com</email>
</member>
<member>
<arena>EAA Office</arena>
<memberid>2</memberid>
<name>John Bull</name>
<email>jb@ehotmail.org</email>
</member>
<member>
<arena>O2 Arena</arena>
<memberid>3</memberid>
<name>John Doe</name>
<email>john.doe@o2arena.co.uk</email>
</member>
<member>
<arena>O2 Arena</arena>
<memberid>4</memberid>
<name>Bernard Cribbins</name>
<email>bernard@gmail.com</email>
</member>
<member>
<arena>Colourline Arena</arena>
<memberid>5</memberid>
<name>John Bon Jovi</name>
<email>jbj@gmail.com</email>
</member>
<member>
<arena>NIA</arena>
<memberid>6</memberid>
<name>Rhianna</name>
<email>skimpy@gmail.com</email>
</member>
</members>
你能看出哪里不对吗?
【问题讨论】:
-
您是否检查过
XElement xml = XElement.Load(Server.MapPath("ArenasMembers.xml"));正在加载 XML? -
它是-“在Visual Studio中使用悬停信息,正在正确读取XNL文件”
-
您应该将该代码和 XML 放入 linqPad。然后,您可以快速测试您的查询并查看 frel 发生了什么。
-
你为什么用 Element("name") 却用 Attribute("email") 不对...