我想用选定的类别(来自组合框)对我的“Feed”进行排序,然后在列表视图中显示具有特定类别的Feed。
-XML file =我想选择值为“Category”
的Feed<?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 :(得分:0)
要根据所选类别获取Feed项目,您可以使用以下代码
var values = from d in doc.Descendants("Feed")
where (string)d.Element("Category")==category
select
d.Descendants("FeedItem");