Building Objects from XML of eBay API with LINQ
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