2017-06-21 4 views
3

私は、個別の要素名のすべてを動的に選択する次のコードを持っています。私はまた、これらの要素の値を見たいと思っています。 LINQを使用してこれを行うにはどうすればよいですか?私は他のやり方もしています。LINQを使用してすべてのXML要素とその値を動的に選択

XDocument doc = XDocument.Load("XMLFile1.xml"); 
foreach (var name in doc.Descendants("QueryResults").Elements() 
       .Select(x => x.Name).Distinct()) 
{ 
} 

答えて

1

何かが

XDocument doc = XDocument.Load("XMLFile1.xml"); 
    foreach (var name in doc.Descendants("QueryResults").Elements() 
       .Select(x => new {Name = x.Name, Value = e.Value}).Distinct()) 
    { 


    } 
+0

これは魅力的でした。ありがとうございました! –

0

あなただけXElementの文字列プロパティですname.Valueを使用します。このような

1

を働くだろう、それはもはや唯一NameValueを比較するので、それがどのようにDistinct作品を変更しないため、受け入れクエリは、元の1 differntです。どの名前にどの値が含まれているかを確認するには、NameGroupByを使用し、各アイテムにValueを取得する必要があります。

var results = 
    doc 
     .Descendants("QueryResults") 
     .Elements() 
     .GroupBy(x => x.Name, (name, items) => new 
     { 
      Name = name, 
      Values = items.Select(x => x.Value) 
     }); 
関連する問題