C# 4.0 如何使用LINQ to xml获取xml的属性值?

C# 4.0 如何使用LINQ to xml获取xml的属性值?,c#-4.0,xml-parsing,linq-to-xml,C# 4.0,Xml Parsing,Linq To Xml,我有以下xml模式 <Rooms> <Room RoomNumber="room1" EMAIL="ssds@dsfd.com" dsfdd=""/> <Room RoomNumber="room2" EMAIL="ssds@sdd.com" dsfdd=""/> </Rooms> 我必须根据输入返回电子邮件地址(程序的输入是房间号) 如何使用LINQ到XML实现这一点 试试这个: var xml = XElement.Par

我有以下xml模式

<Rooms>
    <Room RoomNumber="room1" EMAIL="ssds@dsfd.com" dsfdd=""/>
    <Room RoomNumber="room2" EMAIL="ssds@sdd.com" dsfdd=""/>
</Rooms>

我必须根据输入返回电子邮件地址(程序的输入是房间号)

如何使用LINQ到XML实现这一点

试试这个:

var xml = XElement.Parse("<Rooms>"+
                "<Room RoomNumber=\"room1\" EMAIL=\"ssds@dsfd.com\" dsfdd=\"\"/>"+
        "<Room RoomNumber=\"room2\" EMAIL=\"ssds@sdd.com\" dsfdd=\"\"/>"+
                 "</Rooms>");

string room = "room1"; //input
var email =   xml.Elements("Room")
                        .Where(c => c.Attribute("RoomNumber").Value == room)
                        .Select(c => c.Attribute("EMAIL").Value).FirstOrDefault();
var xml=XElement.Parse(“)+
""+
""+
"");
string room=“room1”//输入
var email=xml.Elements(“房间”)
.Where(c=>c.Attribute(“RoomNumber”).Value==room)
.Select(c=>c.Attribute(“EMAIL”).Value).FirstOrDefault();
试试这个:

var xml = XElement.Parse("<Rooms>"+
                "<Room RoomNumber=\"room1\" EMAIL=\"ssds@dsfd.com\" dsfdd=\"\"/>"+
        "<Room RoomNumber=\"room2\" EMAIL=\"ssds@sdd.com\" dsfdd=\"\"/>"+
                 "</Rooms>");

string room = "room1"; //input
var email =   xml.Elements("Room")
                        .Where(c => c.Attribute("RoomNumber").Value == room)
                        .Select(c => c.Attribute("EMAIL").Value).FirstOrDefault();
var xml=XElement.Parse(“)+
""+
""+
"");
string room=“room1”//输入
var email=xml.Elements(“房间”)
.Where(c=>c.Attribute(“RoomNumber”).Value==room)
.Select(c=>c.Attribute(“EMAIL”).Value).FirstOrDefault();
然后,通过这样的查询,您可以得到以下结果:

// if there is always only one <Room> with given roomNumber
var email = emailQuery.First();
// otherwise
var emails = emailQuery.ToList();
//如果总是只有一个房间有给定的房间号
var email=emailQuery.First();
//否则
var emails=emailQuery.ToList();
然后,通过这样的查询,您可以得到以下结果:

// if there is always only one <Room> with given roomNumber
var email = emailQuery.First();
// otherwise
var emails = emailQuery.ToList();
//如果总是只有一个房间有给定的房间号
var email=emailQuery.First();
//否则
var emails=emailQuery.ToList();

它不起作用。我的问题是,如果我以“room1”的形式提供输入,我必须获得ssds@dsfd.com如果i/p为“room2”,则o/p应为“ssds@sdd.com". 谢谢你,汉克斯·延斯。我找到了解决办法,它不起作用了。我的问题是,如果我以“room1”的形式提供输入,我必须获得ssds@dsfd.com如果i/p为“room2”,则o/p应为“ssds@sdd.com". 谢谢你,汉克斯·延斯。我找到了解决办法。