2014-10-31 123 views
0

我想用選定類別(來自組合框)對我的「Feed」進行排序,然後在列表視圖中顯示具有特定類別的Feed。C#按類別名稱排序xml並在列表視圖中顯示

-XML文件=我要選擇「類別」

<?xml version="1.0" encoding="utf-8"?> 
<ListOfFeeds xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <Id>00000000-0000-0000-0000-000000000000</Id> 
    <FeedList> 
    <Feed> 
     <Url>http://sweclockers.libsyn.com/rss</Url> 
     <Id>94beedee-d528-4831-9f71-8c1db622d12e</Id> 
     <Category>IT</Category> 
     <Namn>Sweclocker Podcast</Namn> 
     <Items> 
     <FeedItem> 
      <Id>2f55814a3396a36530c39ffe63efb6b1</Id> 
      <Title>#34 - Det handlar om E3</Title> 
      <Link>http://traffic.libsyn.com/sweclockers/sweclockers_podcast_20140613.mp3</Link> 
     </FeedItem> 
     <FeedItem> 
      <Id>5e01e8aa5dd90ba31137871ecef5ffe7</Id> 
      <Title>#33 - Spelspecial</Title> 
      <Link>http://traffic.libsyn.com/sweclockers/sweclockers_podcast_20140418.mp3</Link> 
     </FeedItem> 
     ... 
     </Items> 
    </Feed> 
    <Feed> 
     <Url>http://tyngreradio.libsyn.com/rss</Url> 
     <Id>db15f1da-004d-47f1-8a97-e1ae7602f640</Id> 
     <Category>Training</Category> 
     <Namn>Tyngre Radio</Namn> 
     <Items> 
     <FeedItem> 
      <Id>eea6ee3e9377589e25c2c4135aa76f09</Id> 
      <Title>Avsnitt 15: Nicklas Neuman</Title> 
      <Link>http://traffic.libsyn.com/tyngreradio/tyngre_radio_avsnitt_15.mp3</Link> 
     </FeedItem> 
     <FeedItem> 
      <Id>08dc684ab30117c77905bee2f15d0a27</Id> 
      <Title>Avsnitt 14: Caroline Aspenskog</Title> 
      <Link>http://traffic.libsyn.com/tyngreradio/tyngre_radio_avsnitt_14.mp3</Link> 
     </FeedItem> 
     ... 
     </Items> 
    </Feed> 
    </FeedList> 
</ListOfFeeds> 

這是我試圖使用,使這成爲現實的語法之間與價值的飼料,不知道我可以使用什麼/如何使用它。

private void cbCategory_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) 
{ 

    XDocument doc = XDocument.Load("Feed.xml"); 
    string category = cbCategory.SelectedItem.ToString(); 

    var values = doc.Element("Feed") 
     .Elements("Category") 
     .OrderBy(s => (string)s.Attribute(category)); 

    listFlow.Items.Add(values); 
} 

回答

0

要獲得飼料項目對您選擇的類別,你可以使用下面的代碼

var values = from d in doc.Descendants("Feed") 
        where (string)d.Element("Category")==category 
        select 
        d.Descendants("FeedItem");