C# 试图从XDocument获取单个值时,似乎没有任何效果

C# 试图从XDocument获取单个值时,似乎没有任何效果,c#,xml,linq,soap,C#,Xml,Linq,Soap,我只是想从MessageInfo获取值。。这里是xml的摘录。我只需要“发件人”值。我用XDocument尝试了许多不同的方法,并希望使用Linq查询 我试过了 var query1 = doc.Descendants("MessageInfo").Select(s => new MessageInfo { SYSGENID = s.Element("SysGenID").Value, TIME_STAMP = s.Element("TimeStamp").Value,

我只是想从MessageInfo获取值。。这里是xml的摘录。我只需要“发件人”值。我用XDocument尝试了许多不同的方法,并希望使用Linq查询 我试过了

var query1 = doc.Descendants("MessageInfo").Select(s => new MessageInfo
{
     SYSGENID = s.Element("SysGenID").Value,
     TIME_STAMP = s.Element("TimeStamp").Value,
     SENDER = s.Element("Sender").Value,
     RECEIVER = s.Element("Receiver").Value,
     ENTITY_CODE = s.Element("EntityCode").Value
}).FirstOrDefault();
查询1返回null。下面是xml的示例

我也试过

XDocument doc = XDocument.Load(filePath);
               var messageInfo = doc.Root.Elements("MessageInfo");

               var res = from m in messageInfo
                         select new
                         {
                             msgInfo = m.Element("MessageInfo").Value
                         };

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"   
 xmlns:xsi="http://www.w3.org/2001/XMLSchema instance"  
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
      <PutSchedule xmlns="http://www.nwpp.org/eide">
        <MessageInfo>
          <SysGenID>4431</SysGenID>
          <TimeStamp>2014-08-12T10:34:28.068000</TimeStamp>
          <Sender>611</Sender>
          <Receiver>WECC</Receiver>
          <EntityCode>611</EntityCode>
        </MessageInfo>
        <Schedules>
          <Schedule>
            <ScheduleDescription>
              <StartTime>2014-08-12T00:00:00</StartTime>
              <EndTime>2014-08-15T00:00:00</EndTime>
              <AccountCode>259S.NRGREEN_G1.BaseMW</AccountCode>
            </ScheduleDescription>
            <Quantities>
XDocument doc=XDocument.Load(文件路径);
var messageInfo=doc.Root.Elements(“messageInfo”);
var res=来自messageInfo中的m
选择新的
{
msgInfo=m.Element(“MessageInfo”).Value
};
4431
2014-08-12T10:34:28.068000
611
WECC
611
2014-08-12T00:00:00
2014-08-15T00:00:00
259S.NRGREEN\U G1.BaseMW

您必须使用一个名称空间

XNamespace ns = "http://www.nwpp.org/eide";


var query1 = doc.Descendants(ns +"MessageInfo").Select(s => new MessageInfo
                             {
                                 SYSGENID = s.Element(ns +"SysGenID").Value,
                                 TIME_STAMP = s.Element(ns +"TimeStamp").Value,
                                 SENDER = s.Element(ns +"Sender").Value,
                                 RECEIVER = s.Element(ns +"Receiver").Value,
                                ENTITY_CODE = s.Element(ns +"EntityCode").Value
                             }).FirstOrDefault();