Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
In this post, I’d like to illustrate the power of LINQ with code sample. I query the web service published by eBay. Refer to this article about eBay API concepts.
EbayItem.cs
namespace LINQ2EbayResponse { class EbayItem { public string ItemID { get; set; } public string Title { get; set; } } } |
Program.cs
namespace LINQ2EbayResponse { using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Xml.Linq; class Demo{ static void Main(string[] args) { const string myAppID = @"Microsof-e148-4fe7-840c-38a19f6d59ba"; const string queryString = @"ipod"; Demo demo = new Demo(); demo.MakePOXCall(myAppID, queryString); Console.WriteLine("End."); } private void MakePOXCall(string appID, string queryString) { // Make the call to eBay & Retrieve response XML to objects string eBayUrl = string.Format(@"https://open.api.ebay.com/shopping?appid={0}&version=517&siteid=0&callname=FindItems&QueryKeywords={1}&responseencoding=xml&callback=false", appID, queryString); WebClient ebayService = new WebClient(); string ebayResponse = ebayService.DownloadString(new Uri(eBayUrl)); XNamespace ebayNamespace = "urn:ebay:apis:eBLBaseComponents";XElement xmlItems = XElement.Parse(ebayResponse); var items = from Item in xmlItems.Elements(ebayNamespace + "Item") select new EbayItem { ItemID = (string)Item.Element(ebayNamespace + "ItemID"), Title = (string)Item.Element(ebayNamespace + "Title") }; foreach (EbayItem item in items) { Console.WriteLine("ItemID: " + item.ItemID + ", Title: " + item.Title); } } } } |
Done! in-memory objects are built. You can also follow ScottGu’s blog to wire up this code with Silverlight UI.
Comments
- Anonymous
May 29, 2009
PingBack from http://paidsurveyshub.info/story.php?title=bill-li-building-objects-from-xml-of-ebay-api-with-linq - Anonymous
July 06, 2009
The comment has been removed