MarTech
MarTech

Reputation: 115

Parsing XML webservice and storing the data for presentation on a windows phone 7 device

I'm working on an app that requires extracting data from an xml web service, then I want to store that data (images+titles+datetime ...) to display it on my app then select an item and navigate to another page that displays more info about this item.

Is there a detailed tutorial that explains the parsing and storing process clearly (with the threads) because I'm gonna need it a lot for my app.Thanks! I usually use this method, but didn't always get me what i want:

var doc = XDocument.Load(new StringReader(e.Result));
var items = from c in doc.Descendants("item")
        select new RSSitem()
        {
            Title = c.Element("title").Value,
            Photo = c.Element("img").Attribute("src").Value,
            Description = c.Element("description").Value,
            Link = c.Element("link").Value,
        };
ListBoxNews.ItemsSource = items;

Upvotes: 0

Views: 638

Answers (2)

user1099894
user1099894

Reputation:

To consume web services:

String baseUri = “your service URI";
WebClient wc = new WebClient();

public MainPage()
{
    InitializeComponent();
wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_downloadstringcompleted);
// event handler that will handle the ‘downloadstringsompleted’ event

       wc.DownloadStringAsync(new Uri(baseUri));    
//   this method will download your string URI asynchronously 


}
        void wc_downloadstringcompleted(Object sender, DownloadStringCompletedEventArgs e)
        {
        // method will get fired after URI download completes
         // writes your every code here
}

To parse the data:

using (XmlReader reader = XmlReader.Create(new StringReader(xmlString)))
{  

        while (reader.Read())
        {
            switch (reader.NodeType)
            {
                case XmlNodeType.Element:
                    break;
                case XmlNodeType.Text:
                    break;
                case XmlNodeType.EndElement:
                    break;
            }
        }

    }
}

To store in isolated storage: http://msdn.microsoft.com/en-us/library/system.io.isolatedstorage.isolatedstoragesettings%28v=vs.95%29.aspx

For navigation:

NavigationService.Navigate(new Uri("/SecondPage.xaml?msg=" + navigationstring, UriKind.Relative));

Upvotes: 0

Nate
Nate

Reputation: 30646

Sounds like you are in over your head (based on the vague nature of your question). So I'm offering my advise to get up to speed, so you can get started and ask a question that we can help give a definitive answer to.

With WP7 and .NET you shouldn't really have to do much manual parsing of Web Services. You should be able to add a Service Reference and generate a proxy which will handle this for you. This will also generate business objects for the data returned by your service.

Once you have that done, you can look into Windows Phone Navigation which should help you transition between pages in your application.

Upvotes: 1

Related Questions