2012-04-01 34 views
5

Ich versuche, die HTML-Codierung aus meinem RSS-Feed zu löschen. Ich kann nicht herausfinden, wie man das unten setzt, um die HTML Kodierung herauszunehmen.HTML aus Zeichenfolge entfernen

var rssFeed = XElement.Parse(e.Result); 

var currentFeed = this.DataContext as app.ViewModels.FeedViewModel; 
var items = from item in rssFeed.Descendants("item")        
      select new ATP_Tennis_App.ViewModels.FeedItemViewModel() 
      { 

       Title = item.Element("title").Value, 
       DatePublished = DateTime.Parse(item.Element("pubDate").Value), 
       Url = item.Element("link").Value, 
       Description = item.Element("description").Value 
      }; 

foreach (var item in items) 
    currentFeed.Items.Add(item); 
+2

Haben Sie versucht, die 'HtmlAgilityPack' lib zu verwenden? check out http://htmlagilypack.codeplex.com/discussions/225113 – Jack

+0

Hat OuterText oder OuterHtml was Sie brauchen? –

Antwort

17

einfach den folgenden Code verwenden:

var withHtml = "<p>hello <b>there</b></p>"; 
var withoutHtml = Regex.Replace(withHtml, "<.+?>", string.Empty); 

Dies wird die HTML reinigt nur den Text zu verlassen, so "Hallo"

So können Sie diese Funktion einfach kopieren und verwenden:

string RemoveHtmlTags(string html) { 
    return Regex.Replace(html, "<.+?>", string.Empty); 
} 

Ihr Code wird wie folgt aussehen:

var rssFeed = XElement.Parse(e.Result); 
var currentFeed = this.DataContext as app.ViewModels.FeedViewModel; 
var items = from item in rssFeed.Descendants("item")        
      select new ATP_Tennis_App.ViewModels.FeedItemViewModel() 
      { 

       Title = RemoveHtmlTags(item.Element("title").Value), 
       DatePublished = DateTime.Parse(item.Element("pubDate").Value), 
       Url = item.Element("link").Value, 
       Description = RemoveHtml(item.Element("description").Value) 
      }; 
+0

Können Sie mir sagen, wo ich das in den Code einfügen kann, den ich oben habe? –

+0

Ich habe meine Antwort mit einem Code-Beispiel mit Ihrem ursprünglichen Code aktualisiert –

+0

Dies wird nicht entfernen HTML-Einheiten wie '"' und was nicht. –

-3

die folgende Klasse-Dienstprogramm verwenden:

HttpUtility.HtmlDecode(string); 

Bitte beziehen sich nicht diese Antwort nicht mehr.

+0

Wo und wie wird dies in Bezug auf den obigen Code verwendet? –

+0

@MichaelPeberdy: Angenommen, die Beschreibung enthält hTMNL-Tags, dann können Sie folgenden Code verwenden, um HTML-Tags zu entfernen: HttpUtility.HtmlDecode (Description); – Mahantesh

+0

hTMNL bedeutet nichts, und 'HttpUtility.HTMLDecode (string)' Zweck ist, HtmlEntities zurück in Zeichen zu konvertieren. Sie wollten Rep-Punkte? –

Verwandte Themen