2010-03-10 15 views
12

Jak utworzyć kanał RSS w ASP.NET 3.5 za pomocą C#?Tworzenie kanału RSS w ASP.NET 3.5

Jakie elementy ramy pomogłyby ułatwić publikację kanału RSS lub Atom dla programisty .NET?

Czy są jakieś dodatkowe funkcje w .NET 4, aby ułatwić to zadanie niż w 3.5?

+0

Niejasne pytanie, mam nadzieję, że możesz coś zrobić z moją odpowiedzią. – Younes

Odpowiedz

13

Istnieje nowa przestrzeń nazw dla tego w 3.5 o nazwie System.ServiceModel.Syndication.

Kevin Miller has a great writeup on this, nie za dużo też z nową przestrzenią nazw, sprawdź artykuł, nie ma potrzeby repostowania tutaj, przykładowy kod jest znacznie łatwiejszy do zobaczenia w mojej opinii.

+0

Wymieniłem łącze Kevina Millera na działające. –

+0

Rozważ dodanie tej odpowiedzi w celu uwzględnienia odpowiednich części. –

-1
public void BindData() 
{      

    StringWriter sw = new StringWriter(); 
    XmlTextWriter writer = new XmlTextWriter(sw); 
    XmlDocument doc = new XmlDocument(); 
    XmlNode docNode = doc.CreateXmlDeclaration("1.0", "UTF-8", null); 

    writer.WriteStartElement("feed"); 
    writer.WriteAttributeString("xmlns", "http://www.w3.org/2005/Atom"); 
    writer.WriteString("\n"); 
    writer.WriteElementString("title", this.TTT + " - " + this.Title); 
    writer.WriteString("\n"); 


    writer.WriteStartElement("link"); 
    writer.WriteAttributeString("href", this.Url); 
    writer.WriteEndElement(); 

    writer.WriteElementString("id", "urn:uuid:" + Guid.NewGuid().ToString());    
    writer.WriteElementString("updated", DateTime.UtcNow.ToString("o")); 


    foreach (var item in this.lista) 
    { 
     writer.WriteStartElement("entry"); 
     writer.WriteElementString("title", item.Value.Title); 

     writer.WriteStartElement("link"); 
     writer.WriteAttributeString("href", item.Key); 
     writer.WriteEndElement(); 

     writer.WriteElementString("id", item.Key); 
     string slikaImgUrl = item.Value.Imaga; 

     if (string.IsNullOrEmpty(slikaImgUrl) == false) 
     { 
      writer.WriteStartElement("link"); 
      writer.WriteAttributeString("rel", "enclosure"); 
      writer.WriteAttributeString("type", "image/jpeg"); 
      writer.WriteAttributeString("href", slikaImgUrl); 
      writer.WriteEndElement(); 
     } 

     writer.WriteStartElement("author"); 
     writer.WriteElementString("name", this.Title); 
     writer.WriteEndElement(); 

     writer.WriteStartElement("summary"); 
     writer.WriteAttributeString("type", "text"); 
     writer.WriteCData(" "); 
     writer.WriteEndElement();    

     writer.WriteElementString("updated", DateTime.UtcNow.ToString("o")); 
     writer.WriteElementString("published", DateTime.UtcNow.ToString("o")); 
     writer.WriteEndElement(); 
     writer.WriteString("\n");     
    } 

    writer.WriteEndElement(); 
    string dataOut = sw.ToString(); 


    Response.Clear(); 
    Response.ContentType = "text/xml"; 

    Response.Write(dataOut); 
    writer.Close(); 
    Response.End(); 
} 
Powiązane problemy