Get a specific number of results from an XmlDocument XPath query

后端 未结 2 1345
离开以前
离开以前 2021-01-13 09:21

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

2条回答
  •  时光说笑
    2021-01-13 10:05

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

提交回复
热议问题