2013-04-30 85 views
2

我无法提供正确的代码从RSS提要下载图片,然后将该下载交给RadControl幻灯片查看或分页。无法从RSS提要下载图片?

我可以用我正在使用的代码得到的唯一的东西是图片的文本或图片的缩略图,而不是完整的图片。我必须错过某些东西或留下一些东西。

这是Windows Phone的C#

的RSS提要的网页链接是通用的用于测试目的。

//Constructor 
public MainPage() 
{ 
    InitializeComponent(); 
} 

private void FlickrSearch_Click(object sender, RoutedEventArgs e) 
{ 
    WebClient webclient = new WebClient(); 
    webclient.DownloadStringCompleted += new DownloadStringCompletedEventHandler   

    (webclient_DownloadStringCompleted);    
} 

void webclient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) 
{ 
    if (e.Error != null) 
    { 
     MessageBox.Show("error"); 
    } 
    // parsing Flickr 

    XElement XmlTweet = XElement.Parse(e.Result); 
    XNamespace ns = "http://api.flickr.com/services/feeds/photos_public.gne?tag="; // flilckr 
    listBox1.ItemsSource = 
     from tweet in XmlTweet.Descendants("item") 
     select new FlickrData 
     { 
      ImageSource = tweet.Element(ns + "thumbnail").Attribute("url").Value, 
      Message = tweet.Element("description").Value, 
      UserName = tweet.Element("title").Value, 
      PubDate = DateTime.Parse(tweet.Element("pubDate").Value) 
     }; 
} 
+0

提供您所使用的Web客户端的完整图像的URL。 – 2013-04-30 05:57:35

+0

也许这就是我遇到的问题。这是我拥有的一切。这是我尝试从提供的示例项目中使用的代码。 – 2013-05-06 04:26:53

+0

从我的理解我需要下载照片到独立的手机存储,然后将它们交给控制或照片查看器。那是对的吗? 对不起,也许需要大量的信息。我在学校学习这些东西,并试图同时编写代码,所以我需要帮助填补一些空白。任何帮助深表感谢。 – 2013-05-06 04:33:13

回答

2

我发现你解析的方式&获取内部数据是错误的。我已经仔细验证了来自Flickr的XML数据并相应地修改了逻辑。

这里有云的完整代码:

void webclient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) 
{ 
    if (e.Error != null) 
    { 
     MessageBox.Show("error"); 
    } 
    // parsing Flickr 

    XElement XmlTweet = XElement.Parse(e.Result); 
    string ns = "http://www.w3.org/2005/Atom"; 

    XName entry = XName.Get("entry", ns); 
    XName loc = XName.Get("loc", ns); 
    XName title = XName.Get("title", ns); 
    XName published = XName.Get("published", ns); 
    XName link = XName.Get("link", ns); 
    XName content = XName.Get("content", ns); 
    XName url = XName.Get("url", ns); 

    listBox1.ItemsSource = 
     from tweet in XmlTweet.Elements(entry) 
     select new FlickrData 
     { 
      ImageSource = tweet.Element(link).Attribute("href").Value, 
      Message = tweet.Element(content).Value, 
      UserName = tweet.Element(title).Value, 
      PubDate = DateTime.Parse(tweet.Element(published).Value) 
     }; 
}