0

私は以下のような決定木構造を持っています、

<?xml version="1.0" encoding="utf-8" ?>
<root>
  outlook
  <item>
    sunny
    <root>
      humidity
      <item>
        high
        <leaf>no</leaf>
      </item>
      <item>
        normal
        <leaf>yes</leaf>
      </item>
    </root>
  </item>
  <item>
    overcast
  <leaf>yes</leaf>
  </item>
  <item>
    rain
    <root>
      wind
      <item>
        weak
        <leaf>yes</leaf>
      </item>
      <item>
        strong
        <leaf>no</leaf>
      </item>
    </root>
  </item>
</root>

を表示する LINQ クエリが必要でした。

Outlook : Sunny , Overcast , Rain 

つまり、ルート値にツリーの最初のレベルの子の値を加えたものです。、 Sunny のような特定のアイテムを再度選択します

連続するルート値とルートの最初のレベルの子を繰り返し与える必要があります。あれは 、

Humidity : High , Normal

そして最終的にYESかNOかの決断にたどり着きます。同じことに取り組んでいますが、いくつかの情報がさらに役立ちます。

4

1 に答える 1

0

次のことを試していただけますか。

var doc = XDocument.Parse(xml);
foreach (var r in doc.Descendants("root"))
{
    var values = r.Elements("item").Select(s => (s.FirstNode as XText).Value.Trim()).ToList();
    string.Concat((r.FirstNode as XText).Value.Trim(), ": ", string.Join(",", values)).Dump("decision");
}

これは私が得る出力です:

decision 
outlook: sunny,overcast,rain 

decision 
humidity: high,normal 

decision 
wind: weak,strong 

私は LinqPad を使用したため、LinqPad コンソールに出力を吐き出す Dump メソッド呼び出しを使用しました。お役に立てれば。

于 2013-03-30T12:07:34.257 に答える