2013-03-07 114 views

回答

1
var doc = XDocument.Load(myXmlFilePath); 
// or doc = XDocument.Parse(myXmlString); 

string roomNumber = "room1"; 

var emailQuery = from room in doc.Root.Elements("Room") 
       where (string)room.Attribute("RoomNumber") == roomNumber 
       select (string)room.Attribute("EMAIL"); 

然后,就像你可以得到结果的查询:

// if there is always only one <Room> with given roomNumber 
var email = emailQuery.First(); 
// otherwise 
var emails = emailQuery.ToList(); 
+0

谢谢MarcinJuraszek。它的工作。 – PaRsH 2013-03-07 09:59:31

2

试试这个:

var xml = XElement.Parse("<Rooms>"+ 
       "<Room RoomNumber=\"room1\" EMAIL=\"[email protected]\" dsfdd=\"\"/>"+ 
     "<Room RoomNumber=\"room2\" EMAIL=\"[email protected]\" 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(); 
+0

它不会工作。我的问题是,如果我给“房间1”输入,我必须得到[email protected],如果我/ P是“房间2”,那么o/p应该是“[email protected]”。在此先感谢 – PaRsH 2013-03-07 09:42:44

+0

@PaRsH确定sry,我已更新答案 – 2013-03-07 09:45:44

+0

谢谢Jens。我得到了解决方案。 – PaRsH 2013-03-07 09:58:48