C# 试图从XDocument获取单个值时,似乎没有任何效果
我只是想从MessageInfo获取值。。这里是xml的摘录。我只需要“发件人”值。我用XDocument尝试了许多不同的方法,并希望使用Linq查询 我试过了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,
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();