LINQ - 从具有特定标记的XML元素中选择*

时间:2012-04-18 19:34:10

标签: c# .net xml linq

我一直在从以下链接看一个LINQ的例子;我已经在链接下面发布了代码。

是否可以修改此示例,以便var中返回的项目包含与doc.Descendants(“person”)过滤器匹配的项目中找到的所有子元素?我基本上希望这个XML查询的行为类似于SQL select *所以我不必像使用drink,moneySpent和zipCode那样明确指定字段名称。

http://broadcast.oreilly.com/2010/10/understanding-c-simple-linq-to.html#example_1

static void QueryTheData(XDocument doc)
{
     // Do a simple query and print the results to the console
     var data = from item in doc.Descendants("person")
                 select new
                 {
                      drink = item.Element("favoriteDrink").Value,
                      moneySpent = item.Element("moneySpent").Value,
                      zipCode = item.Element("personalInfo").Element("zip").Value
                  };
     foreach (var p in data)
         Console.WriteLine(p.ToString());
}

2 个答案:

答案 0 :(得分:1)

OP表示他喜欢发布的答案,所以我只是重新提交它用于科学:)

var data = from item in doc.Descendants("person")
           select item;

唯一的问题是数据是IEnumerable<XElement>,您必须按字符串名称查询字段。

答案 1 :(得分:-1)

// Do a simple query and print the results to the console 
var data = from item in doc.Descendants("person") 
             select item;