如何使用lambda表达式asp.net从xml获取节点名称和子名称

时间:2015-03-24 08:51:35

标签: c# asp.net xml

我是Lambda表达的新手,我的xml格式如下所示

<authorofBook>
<chycology category="New">
<Book id"1">professor cesior</Book>
<Book id"2">professor cesior</Book>
<Book id"3">professor cesior</Book>
</chycology>
<chycology category="Old">
<Book id"1"> willom</Book>
<Book id"2">taylor</Book>
</chycology>
<authorofBook>

所以我需要得到和Bind分别下载Old One和New Books如何绑定

我做过像这样的

document.Descendants("authorofBook").Descendants("chycology")
    .Where(g => g.Attribute("category").Value == "category")
    .Select(g => new Author
        {
            Authortype="New",
            BookId =g.Elements("chycology").Select(x=>x.Attribute("Id").Value).ToList(),
            catogory= g.Elements("chycology").Select(x => x.Attribute("Name").Value).ToList() : null,

        }).ToList());

但我不知道如何根据类别

获取图书

1 个答案:

答案 0 :(得分:0)

 XNamespace ns = doc.Root.Name.Namespace;

        XElement books= doc.Descendants(ns + "chycology").First(x => x.Attribute("category").Value.Equals("New"));

也许你可以试试这样的东西?这就是我在项目中的表现。

不使用命名空间编辑

      XElement books= doc.Descendants("chycology").First(x => x.Attribute("category").Value