SyndicationFeed: Content als CDATA?
Ich mit .NET SyndicationFeed zur Erstellung von RSS-und ATOM-feeds. Leider brauche ich HTML-Inhalte in das description-element (die Content-Eigenschaft des SyndicationItem) und das Formatierungsprogramm automatisch codiert, die HTML, aber ich hätte lieber die ganze Beschreibung element verpackt in CDATA-ohne Codierung des HTML-Codes.
Meine (einfachen) code:
var feed = new SyndicationFeed("Title", "Description",
new Uri("http://someuri.com"));
var items = new List<SyndicationItem>();
var item = new SyndicationItem("Item Title", (string)null,
new Uri("http://someitemuri.com"));
item.Content = SyndicationContent.CreateHtmlContent("<b>Item Content</b>");
items.Add(item);
feed.Items = items;
Jemand eine Idee, wie ich können dies tun, indem SyndicationFeed? Mein letzter Ausweg ist, um "manuell" erstellen, die für XML-feeds, aber ich würde lieber die built-in SyndicationFeed.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser arbeitete für mich:
dann können Sie:
Denjenigen, bei denen die Lösung von cpowers und WonderGrub auch nicht funktioniert, sollten Sie sich die folgende Frage ALSO, weil für mich diese Frage war eigentlich die Antwort auf mein wiederholtes auftreten dieses Problems!
Rss20FeedFormatter Ignoriert TextSyndicationContent Typ für SyndicationItem.Zusammenfassung
Ausgehend von der positiven Antwort aus
thelsdj
undAndy Rose
und später dann die "negative" Reaktion vonTimLeung
und den alternativen angeboten vonWonderGrub
ich würde schätzen, dass das Update angeboten cpowers aufgehört zu arbeiten in einigen späteren version ASP.NET oder so etwas.In jedem Fall die Lösung im oben SO im Artikel (abgeleitet von David Whitney-code) das problem mit unerwünschten HTML-Codierung, die in CDATA-Blöcke in einem RSS 2.0-feed für mich. Ich habe es in einem ASP.NET 4.0 WebForms Anwendung.
Sollte diese Arbeit.
Ich hatte das gleiche problem, wie einige, wo die WriteContentsTo überschreiben nicht aufgerufen wird, in cpowers Beispiel (immer noch keine Ahnung, warum). So, ich habe es Erben, die SyndicationContent Klasse statt. Nicht sicher, ob dies die beste Lösung, aber funktioniert großartig in meiner situation.
item.Content = new CDataSyndicationContent("<b>Item Content</b>")
Könnte es zu spät sein, aber ich lasse meine Lösung. Ich habe es als ElementExtension dann es funktioniert für mich. Meine Umgebung ist .NET 4.5.
versuchen, diese
Hier ist, was wir haben :
Und dann um die Klasse zu verwenden :
Den kürzesten Weg, dies zu tun ist:
Die ausgegeben werden, in das XML als
Nicht eine elegante Lösung, gebe ich zu, aber es funktioniert einwandfrei – habe gerade versucht auf ein Projekt von mir.
versuchen