XLINQ过滤

时间:2010-02-12 16:25:56

标签: c# linq-to-xml

如何使用此XML并过滤掉使用XLINQ标记为expert的菜单元素并返回其余部分?

<data>
   <preferences />
   <menus>
      <menu type="expert">
         <sub />
      </menu>
      <menu type="beginner">
         <sub />
      </menu>
   </menus>
</data>

结果将是:

<data>
   <preferences />
   <menus>
      <menu type="beginner">
         <sub />
      </menu>
   </menus>
</data>

1 个答案:

答案 0 :(得分:2)

        // parse the DOM if needed
        XDocument doc =XDocument.Parse(xml);
        // find the expert menu items
        var remove = doc.Descendants("menu").Where(
            menu => (string)menu.Attribute("type") == "expert").ToList();
        // remove them
        foreach (var item in remove) {
            item.Remove();
        }
        // to get output
        string s = doc.ToString();