2010-02-12 16 views
1

如何獲取此XML並使用XLINQ過濾出標記爲專家的菜單元素並返回其餘部分?XLINQ篩選

<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> 

回答

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();