Как считать дочерние XElements в предложении where - PullRequest
0 голосов
/ 17 февраля 2011
<Automobiles>
  <Cars>
    <YearofMfr></YearofMfr>
    <Mileage></Mileage>
    <MeterReading></MeterReading>
    <Color></Color>
    <Condition></Condition>
  </Cars>
  <Cars>
    <YearofMfr></YearofMfr>
    <Color></Color>
    <Condition></Condition>
  </Cars>
</Automobiles>

Как я могу получить элемент, который имеет все дочерние элементы. Чтобы объяснить подробно. У меня выше xml. Из этого я хочу получить один узел, который имеет все дочерние узлы. Если вы видите во втором узле, некоторая информация отсутствует. Я пытался сделать это.

var nodes = from nodeElements in doc.Descendants().FirstOrDefault().Elements()
                 where doc.Descendants().Count()==5
                select nodeElements;

Мне нужен один узел на выходе, который имеет 5 дочерних элементов.

<Cars>     
<YearofMfr></YearofMfr>     
<Mileage></Mileage>     
<MeterReading></MeterReading>     
<Color></Color>     
<Condition></Condition>   
</Cars>

1 Ответ

5 голосов
/ 17 февраля 2011

Я предлагаю вам выбрать свой счет из nodeElements.Descendants вместо:

var nodes = (from nodeElements in doc.Root.Elements()
            where nodeElements.Descendants().Count()==5
            select nodeElements).FirstOrDefault();

Обновлено, чтобы отразить комментарий ниже и комментарий к исходному вопросу.

...