невозможно проанализировать XML-запрос с помощью Linq - PullRequest
1 голос
/ 12 мая 2011

Я разрабатываю пример приложения Twitter для Windows Phone 7. В моем коде для отображения некоторых сведений о пользователе используется следующий код.

    void ShowProfile()
    {
        WebClient client = new WebClient();
        client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(Profile_DownloadCompleted);
        client.DownloadStringAsync(new Uri("http://api.twitter.com/1/users/show.xml?user_id=" + this.id));
    }

    void Profile_DownloadCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        if (e.Error != null)
        { return; }
        if (e.Result == null) MessageBox.Show("NUlllllllllll");
        XElement Profile = XElement.Parse(e.Result);

    var ProfileDetails = (from profile in Profile.Descendants("user")
                             select  new UserProfile
                             {
                                 UserName = profile.Element("screen_name").Value,
                                 ImageSource = profile.Element("profile_image_url").Value,
                                 Location = profile.Element("location").Value,
                                 TweetsCount = profile.Element("statuses_count").Value,
                             }).FirstOrDefault();

        LayoutRoot.DataContext = ProfileDetails;
 }

Здесь LayoutRoot - это имя сетки.Но привязка данных не работает.Фактически, когда сохраняется точка останова, кажется, что в объекте ProfileDetails нет данных.Но я мог заметить, что e.Result содержит необходимые данные в формате XML.Может ли кто-нибудь выяснить, где я иду не так?Заранее спасибо.

1 Ответ

2 голосов
/ 12 мая 2011

Вы использовали XElement.Parse, поэтому Profile представляет единственного корня <user>, который бы возвратил запрос API.Затем вы пытаетесь найти в нем user элементов, что, конечно, не имеет смысла.

Вместо этого попробуйте XDocument.Parse.Также имеет ли смысл назначать IEnumerable<UserProfile> контексту данных, когда этот список может содержать только 1 запись?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...