У меня есть следующий XML-документ с именем testFix.fix
<WriteFixedWidth Type="extract">
<Position Start="1" Length="15" Name="Field1" />
<Position Start="16" Length="8" Name="Field2" />
<Position Start="24" Length="10" Name="Field3" />
</WriteFixedWidth>
Кроме того, следующий код
public void readXML()
{
XDocument loaded = XDocument.Load(@"testSpec.xml");
var q = from c in loaded.Descendants("WriteFixedWidth").Elements("Position")
where c.Parent.Attribute("Type").ToString() == "Extract"
select new
{
Start = c.Attribute("Start").Value,
Length = c.Attribute("Length").Value,
Name = c.Attribute("Name").Value
};
foreach (var field in q)
Console.WriteLine("Name is {0}, Start is {1}, Length is {2}", field.Name, field.Start, field.Length);
}
Если я удалю предложение where, я получу все поля в этомXML-документ, как и ожидалось.Однако я бы имел разные атрибуты типа для разных операций.Как мне отфильтровать данные из родительского узла?Было бы неплохо рассматривать это как один запрос, а не строить два.