質問

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値も返すことです。

これをどのように達成できますか。

ありがとう

役に立ちましたか?

解決

現在、要素ではなく属性を選択しています。期間を含めるには、要素全体が必要です。

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

(これはいかなる種類のエラーチェックもしないことに注意してください-title属性とduration要素がある方が良いでしょう...)

他のヒント

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();
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top