使用LINQ动态选择所有XML元素及其值

时间:2017-06-21 17:02:21

标签: c# xml linq

我有以下代码,动态选择所有不同的元素名称;我也想看看这些元素的值。我怎么能用LINQ做到这一点?我也乐于采取其他方式。

- Folder_01may2017.zip
      + file_A.txt
      + file_B.txt

- Folder_06may2017.zip
      + file_A.txt
      + file_B.txt

3 个答案:

答案 0 :(得分: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())
   {


   }

答案 1 :(得分:1)

接受的查询与原始查询不同,因为它会更改var books = [ new Book( "Always Running", "Luis J. Rodriguez", true ), new Book( "Hatchet", "Gary Paulsen", true ), // etc ]; 的工作方式,因为它不再只比较Distinct而且还会比较Name。如果您想查看哪些名称具有哪些值,您需要在Value上使用GroupBy并获取每个项目的Name

Value

答案 2 :(得分:0)

您只需使用name.Value,这是XElement的字符串属性。