linq to xml - PullRequest
       5

linq to xml

1 голос
/ 29 апреля 2009

хотите запросить ниже xml

 <courseList filedUnder="Courses">
  <category code="4wd" title="4wd Operation">
    <product code="lr" title="4wd Bush Driving">
        <duration>1 Day</duration> 
    </product>
    <product code="hr" title="4wd Defensive Driving">
        <duration>1 Day</duration> 
    </product>
    <product code="sr" title="Self-Recovery">
        <duration>1 Day</duration> 
    </product>
  </category>
 </courseList>

на данный момент я делаю что-то ниже:

      var list = (from x in xd.Descendants("product").Attributes("title")  
      select new { Title= x.Value}).ToList();

, который возвращает только: значение заголовка

То, что я хочу, в том же запросе возвращает значение Duration тоже.

Как этого достичь.

Спасибо

Ответы [ 2 ]

2 голосов
/ 29 апреля 2009

В настоящее время вы выбираете атрибуты вместо элементов . Чтобы включить продолжительность, вам понадобится весь элемент.

var list = xd.Descendants("product")
             .Select(element => new 
                 { Title = element.Attribute("title").Value,
                   Duration = element.Element("duration").Value })
             .ToList();

(Обратите внимание, что это не делает никакой проверки ошибок - лучше было бы иметь атрибут title и элемент duration ...)

1 голос
/ 29 апреля 2009
var list = (from x in xd.Descendants("product")
             select new { 
                Title= x.Attribute("title") != null ? x.Attributes("title").Value : "",
                Duration = x.Element("duration") != null ? x.Element("duration").Value : ""
             }
           ).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...