2017-04-11 4 views
0

Ich lese in einem Feld aus der Datenbank und zeigt in einem GridView und in diesem Feld enthält es <br/> Tags im Text. So versuche ich, diese aus dem Code zu entfernen, aber wenn ich den Wert e.Row.Cells[index].Text überprüfe, enthält es <br/> nicht und hat stattdessen ;br/&gt;. SoEntfernen Sie HTML-Markup von String

Ich habe versucht, eine Funktion erstellen, die jeden Teil beginnend mit ; mit < und endend mit > oder beginnend mit & und endend entfernt. Der Code entfernt die <> aber es ist immer noch br/

-Code zeigt:

index = gv.Columns.HeaderIndex("Message"); 
if (index > 0) 
{ 
    string message = RemoveHTMLMarkup(e.Row.Cells[index].Text); 
    e.Row.Cells[index].Text = message; 
} 

static string RemoveHTMLMarkup(string text) 
{ 
     return Regex.Replace(Regex.Replace(text, "<.+?>", string.Empty), "&.+?;", string.Empty); 
} 

Wie entferne ich die <br/>-Tag?

+2

[Obligatory link] (http://Stackoverflow.com/a/1732454/2307070) über warum ṫ̨̗̺̭̮̞̗̜̮̗̙̫̺̖̭̯͊ͨ̌͒̍͘͘͟͝h̸͓̩̙͙̻̗͔̞̘̟̩̯͋͑͐a̴̧ͨͭ͒ͯ̓͐̇ͥ͢҉ ̨̳̜̤͍͖t̵̳̳͕͉͋̓͐ͦͬ̈̚ ist eine schlechte Idee. Sind Sie sicher, dass es '' br/> 'und nicht' < br/> 'ist? –

+0

@ThomasAyoub ja du hast recht es ist '< br/>'. Also, wenn ich Regex nicht verwende, was sollte ich dann verwenden? – user123456789

Antwort

3

Da dies eine Zeichenkette ist, Sie (sh | c) Ould nur String.Replace() verwenden:

static string RemoveHTMLNewLines(string text) 
{ 
    return text.Replace("&lt;br/&gt;", string.Empty); 
} 

Oder mit Environment.NewLine ersetzen, wenn nötig.

2
  1. Die Zeichenfolge aufheben.
  2. Verwenden Sie dann regex, um die erwarteten Tags zu finden und zu entfernen.

Oder

Wenn Sie genug Zeit zum Lernen und zur Nutzung haben, verwenden Sie dann HtmlAgilityPack Paket.

About HtmlAgilityPack

Nuget Package Link