2012-04-01 27 views
5

Sto cercando di cancellare la codifica HTML dal mio feed RSS. Non riesco a capire come impostare il sotto per eliminare la codifica HTML.Rimuovi HTML dalla stringa

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

Hai provato a utilizzare la lib di 'HtmlAgilityPack'? controlla http://htmlagilitypack.codeplex.com/discussions/225113 – Jack

+0

OuterText o OuterHtml hanno ciò che ti serve? –

risposta

17

Basta usare il codice seguente:

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

Questo pulire il codice html lasciando solo il testo, in modo da "ciao là"

Quindi, si può semplicemente copiare e utilizzare questa funzione:

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

il codice sarà simile a questo:

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

Puoi dirmi dove posso inserire questo nel codice che ho sopra? –

+0

Ho aggiornato la mia risposta con un esempio di codice utilizzando il codice originale –

+0

Ciò non rimuoverà le entità HTML come """ e così via. –

-3

utilizzare il seguente programma di utilità classe:

HttpUtility.HtmlDecode(string); 

Si prega di non fare riferimento questa risposta non di più.

+0

Dove e come viene utilizzato in relazione al codice sopra? –

+0

@MichaelPeberdy: Supponiamo che la descrizione contenga tag hTMNL, quindi puoi usare il seguente codice per rimuovere i tag HTML HttpUtility.HtmlDecode (Description); – Mahantesh

+0

hTMNL non significa nulla e lo scopo 'HttpUtility.HTMLDecode (string)' è quello di convertire HtmlEntities in caratteri. Volevi punti Rep? –