Был ли у вас когда-нибудь один из тех дней, когда вы вырыли яму, но теперь вы настолько глубоко в ней, что единственный выход - продолжать копать и смотреть, где вы выходите?
Я подумал только о хихиканье в последнем компоненте, который я пишу, чтобы использовать LINQ to XML, потому что пришло время увидеть, что же такое вся эта шумиха.
Проблема: я генерирую дерево XML для представления «коллекции» рядов на графе, каждая серия может иметь детей, потомков серии «означает», что эта серия точек (для построения графика) основана на родительская серия. Поэтому я создаю свой XML как набор правил, а затем передаю его в процедуру рисования, которая «должна» пройти по дереву и рисует их в таком порядке, то есть ни один дочерний элемент не отображается перед его родителем.
Мой XML создается программно. пример выглядит так (не уверен на 100%, что я все делаю правильно)
<Chart>
<Chart_Config>
<Color Color="white" />
<Panels Panel="1" />
</Chart_Config>
<Series ID="0">
<Name>1154.close</Name>
<ID>0</ID>
<IndID>-1</IndID>
<PID>0</PID>
<iType>0</iType>
<Parent>0</Parent>
<Series ID="1">
<Name>1.Indicator</Name>
<ID>1</ID>
<IndID>0</IndID>
<PID>0</PID>
<iType>0</iType>
<Parent>1154.close</Parent>
</Series>
<Series ID="2">
<Name>2.Indicator</Name>
<ID>2</ID>
<IndID>0</IndID>
<PID>0</PID>
<iType>0</iType>
<Parent>1154.close</Parent>
</Series>
<Series ID="3">
<Name>3.Indicator</Name>
<ID>3</ID>
<IndID>0</IndID>
<PID>0</PID>
<iType>0</iType>
<Parent>1154.close</Parent>
</Series>
</Series>
</Chart>
Приведенный выше xml немного хитрый, но дело в том, что в этом случае у меня есть 1 серия (id = 0), у которой 3 серии в качестве детей и, таким образом, 3 серии на основе ID = 0 серии.
Вопрос в том, какие команды LINQ я должен использовать, чтобы получить ВСЕ узлы <series>
, чтобы они вошли в I.e. от корня до листьев.
Код, который я имею, получает только первый узел серии, а не его дочерние элементы. Я не могу разобраться с этим синтаксисом или концепциями LINQ.
var result = from e in ChartRule.Elements("Series")
select e;
Любая помощь приветствуется. Я ожидаю, что это довольно просто, если у вас есть хоть какие-то подсказки; -)