【问题标题】:Attempting to get single value from XDocument, nothing appears to work尝试从 XDocument 获取单个值,似乎没有任何效果
【发布时间】:2014-11-06 23:06:06
【问题描述】:

我只是想从 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();

query1 返回 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>

【问题讨论】:

    标签: c# xml linq soap


    【解决方案1】:

    您有一个必须使用的命名空间。

    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();
    

    【讨论】:

      猜你喜欢
      • 2010-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-05
      • 2022-11-23
      • 1970-01-01
      • 2012-07-10
      • 1970-01-01
      相关资源
      最近更新 更多