Синтаксис запроса будет выглядеть примерно так:
var nodes = from item in Data.Elements("item")
where item.Attribute("id").Value == "200"
let dat = item.Element("DAT")
from line in dat.Elements("line").Skip(1)
let data = line.Element("data")
select data;
var sb = new StringBuilder();
foreach (var node in nodes)
sb.Append(node.Value);
... это избавит от возможных исключений nullref и избавит от цикла foreach
.
var nodes = from item in Data.Elements("item")
let id = item.Attribute("id")
where id != null && id.Value == "200"
let dat = item.Element("DAT")
where dat != null
from line in dat.Elements("line").Skip(1)
let data = line.Element("data")
where data != null
select data.Value;
return nodes.Aggregate(new StringBuilder(), (sb, r) => sb.Append(r))
.ToString();