Разбор XML веб-сервиса и сохранение данных для представления на устройстве Windows Phone 7 - PullRequest
0 голосов
/ 05 марта 2012

Я работаю над приложением, которое требует извлечения данных из веб-службы xml, затем я хочу сохранить эти данные (изображения + заголовки + дата / время ...), чтобы отобразить их в моем приложении, затем выбрать элемент и перейти к другая страница, которая отображает больше информации об этом элементе.

Существует ли подробный учебник, который объясняет процесс синтаксического анализа и хранения (с потоками), потому что он мне очень понадобится для моего приложения. Спасибо! Я обычно использую этот метод, но не всегда получаю то, что хочу:

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;

Ответы [ 2 ]

1 голос
/ 05 марта 2012

Звучит так, словно вы находитесь над головой (основываясь на расплывчатой ​​природе вашего вопроса).Поэтому я предлагаю свои советы, чтобы ускориться, чтобы вы могли начать и задать вопрос, на который мы могли бы помочь дать окончательный ответ.

С WP7 и .NET вам на самом деле не нужновыполнить много ручной разбор веб-сервисов .Вы должны иметь возможность добавить ссылку на сервис и сгенерировать прокси, который будет обрабатывать это для вас.Это также сгенерирует бизнес-объекты для данных, возвращаемых вашей службой.

Как только вы это сделаете, вы можете посмотреть Windows Phone Navigation , которая должна помочь вам переходить между страницами в вашем приложении.

0 голосов
/ 06 марта 2012

Для использования веб-сервисов:

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
}

Для анализа данных:

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

    }
}

Хранить в изолированном хранилище: http://msdn.microsoft.com/en-us/library/system.io.isolatedstorage.isolatedstoragesettings%28v=vs.95%29.aspx

Для навигации:

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