2011-02-17 2 views
0
<Automobiles> 
    <Cars> 
    <YearofMfr></YearofMfr> 
    <Mileage></Mileage> 
    <MeterReading></MeterReading> 
    <Color></Color> 
    <Condition></Condition> 
    </Cars> 
    <Cars> 
    <YearofMfr></YearofMfr> 
    <Color></Color> 
    <Condition></Condition> 
    </Cars> 
</Automobiles> 

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

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> 
+0

Трудно понять, что вы хотите. Не могли бы вы добавить некоторый xml и описать вывод, который вам нужен? –

+0

Предпочитаете 'doc.Root' вместо' doc.Descendants(). FirstOrDefault() ' – Nekresh

+0

Этот запрос решается. Но все же перефразировал мой вопрос для парней, у которых есть аналогичная проблема. – Sajid

ответ

5

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

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

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

+0

Я обновил свой ответ –

+0

Спасибо тонну за отзыв супер быстро. Ответ Дэниела сработал. StackOverFlow Rocks !!! – Sajid

+0

Добро пожаловать :) –

Смежные вопросы