2012-02-02 9 views
2

私は自分のサイトでRssFeedsをゲットしています。複数のサイトからRSSフィードを取得する方法は、1番目のサイトから3番目のフィード、2番目のサイトから3番目のフィードなどCNNは、BBC複数のウェブサイトからRSSフィードを取得する方法

は、ここに私のコードです:

protected void Page_Load(object sender, EventArgs e) 
{ 
    BlogFeeds(); 
} 
protected void BlogFeeds() 
{ 
    try 
    { 
     XmlDocument xmldoc = new XmlDocument(); 
     XmlNodeList items = default(XmlNodeList); 
     xmldoc.Load("http://rss.cnn.com/rss/edition_americas.rss"); 
     xmldoc.Load("http://feeds.bbci.co.uk/news/rss.xml?edition=int#"); 
     items = xmldoc.SelectNodes("/rss/channel/item"); 
     // use XPath to get only items 
     string title = string.Empty; 
     string link = string.Empty; 
     string desc = string.Empty; 
     string pubDesc = string.Empty; 
     string st = ""; 
     int i = 0; 

     foreach (XmlNode item1 in items) 
     { 
      foreach (XmlNode node1 in item1.ChildNodes) 
      { 
       if (node1.Name == "title") 
       { 
        title = node1.InnerText; 
       } 
       if (node1.Name == "link") 
       { 
        link = node1.InnerText; 
       } 
       if (node1.Name == "description") 
       { 
        desc = node1.InnerText; 
        if (desc.Length > 90) 
        { 
         pubDesc = desc.Substring(0, 90); 
        } 
        else 
        { pubDesc = desc; } 
       } 
      } 
      st += "<a target='_blank' href='" + link + "'>" + title + "</a><br />" + pubDesc + " ... " + "<div style='border-bottom: 1px dotted #84acfd; padding-top:10px;'></div></br>"; 
      i++; 
      if (i == 3) 
       break; 
     } 
     lblBlogOutput.Text = st; 
    } 
    catch (Exception eax) 
    { 
     return; 
    } 
} 

}

+0

ルックを、それが単純な取得することは簡単なフォーマットでRSSフィードを公開し、バインドはUIコントロールにフィード。 MSDN http://msdn.microsoft.com/en-us/library/system.servicemodel.syndication.syndicationfeed.aspx – Lloyd

答えて

2

あなたが呼び出すことはできません.LOAD()、それは常にXmlDocumentに追加しています。

は、このコードの修正版を見ている:SyndicationFeedクラスで

protected void Page_Load(object sender, EventArgs e) 
     { 
      BlogFeeds(); 
     } 
     protected void BlogFeeds() 
     { 

      try 
      { 
       XmlDocument xmldoc = new XmlDocument(); 
       XmlNodeList items = default(XmlNodeList); 

       xmldoc.Load("http://rss.cnn.com/rss/edition_americas.rss"); 
       items = xmldoc.SelectNodes("/rss/channel/item"); 
       ReadTopArticles(items); 

       xmldoc.Load("http://feeds.bbci.co.uk/news/rss.xml?edition=int#"); 
       items = xmldoc.SelectNodes("/rss/channel/item"); 
       ReadTopArticles(items); 

      } 
      catch (Exception eax) 
      { 
       return; 
      } 
     } 
     private void ReadTopArticles(XmlNodeList items) 
     { 
      string title = string.Empty; 
      string link = string.Empty; 
      string desc = string.Empty; 
      string pubDesc = string.Empty; 
      string st = ""; 
      int i = 0; 

      foreach (XmlNode item1 in items) 
      { 
       foreach (XmlNode node1 in item1.ChildNodes) 
       { 
        if (node1.Name == "title") 
        { 
         title = node1.InnerText; 
        } 
        if (node1.Name == "link") 
        { 
         link = node1.InnerText; 
        } 
        if (node1.Name == "description") 
        { 
         desc = node1.InnerText; 
         if (desc.Length > 90) 
         { 
          pubDesc = desc.Substring(0, 90); 
         } 
         else 
         { pubDesc = desc; } 
        } 
       } 
       st += String.Format("<a target='_blank' href='{0}'>{1}</a><br />{2} ... <div style='border-bottom: 1px dotted #84acfd; padding-top:10px;'></div></br>", link, title, pubDesc); 
       i += 1; 
       if (i == 3) 
        break; 
      } 
      lblBlogOutput.Text += st; 
     } 
関連する問題