2009-07-13 15 views
8

I ’ m przy użyciu klasy SyndicationFeed do spożywania niektórych kanałów RSS. Zastanawiam się, jak uzyskać węzeł content:encoded kanału RSS. Jest to kod I ’ używam:SyndicationFeed content: encoded

XmlReader reader = XmlReader.Create(response.GetResponseStream()); 

SyndicationFeed feed = SyndicationFeed.Load(reader); 

foreach (SyndicationItem item in feed.Items) 
{ 
    string title = (item.Title != null) ? item.Title.Text : String.Empty; 

    string content = ?? 

    string pubDate = (item.PublishDate != null) ? item.PublishDate.ToString("r") : String.Empty; 

} 

mogę używać item.Summary.Text ale to wydaje się powrót węzeł Description, które mogą być tylko krótkie podsumowanie, a content:encoded będzie miał pełną treść. Tam ’ s opcja dla item.content, ale nie jestem pewien, jak z niego korzystać, a dokumentacja jest ograniczona.

Odpowiedz

21

Spróbuj tego:

StringBuilder sb = new StringBuilder(); 
foreach (SyndicationElementExtension extension in item.ElementExtensions) 
    { 
     XElement ele = extension.GetObject<XElement>(); 
     if (ele.Name.LocalName == "encoded" && ele.Name.Namespace.ToString().Contains("content")) 
     { 
       sb.Append(ele.Value + "<br/>"); 
     } 
    } 
+1

Strzeż zastrzyk HTML w tym poście ... Nadal użytecznej odpowiedzi. – usr

+0

tak, działało świetnie. znowu nie wiem, dlaczego należy dodać
, ale myślę, że może służyć za przykład –