I\'m querying a Twitter RSS feed and supplying the results into a Repeater for display. I\'d like to only get the first 5 results of the XPath query. Is there a way to do th
If you want to continue using xpath then you should look at the position() method in xpath. Using a predicate something like this...
[position() < 6]
... should result limit the results to only the first 5 items. Welbog's answer is your best reference here (+1 to Welbog).
However, if you're able to use .NET 3.5 then I would recommend you look at my answer here...
What is the coolest thing you can do in <10 lines of simple code? Help me inspire beginners!
... and take a look at the syndication APIs that make dealing with RSS feeds much easier. Then, if you only want 5 items, use the LINQ method Take on the collection to take a specific number of items.
This will allow you to express yourself better and not have to worry about the structure of the feed, namespaces etc.
I realise this isn't directly answering your question but as many people don't know about these new APIs in .NET I thought I'd mention them here.
So, your code to get just 5 items would be something like this...
var xmlr = XmlReader.Create("http://twitter.com/statuses/public_timeline.rss")
var first5Items = SyndicationFeed
.Load(xmlr)
.GetRss20Formatter()
.Feed
.Items
.Take(5);