没有从Linq到XML的输出 [英] No output from Linq to XML

查看:63
本文介绍了没有从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 + "<br />");
    }
}

使用Visual Studio中的悬停信息可以正确读取XNL文件,但是foreach不会输出任何记录.

Which, using the hover information in Visual Studio, is reading the XNL file in correctly, however the foreach is not outputting any of the records.

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>

您看到什么地方了吗?

推荐答案

由成员"插入尝试成员" ...

Insted of "members" try "member"...

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

Descendants returns you all the child elements under given Element, in your code you are querying members with name and email, which wont work.

示例代码:

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

这篇关于没有从Linq到XML的输出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆