webForumDet fria alternativet

Plocka bort html-taggar ur en sträng

.NET

6 svar · 287 visningar · startad av erka

Medlem sedan dec. 19996 522 inlägg
Frågan#1

Hej

Jag är i behov av att plocka ut alla html-taggar ur en sträng, att radera alla verkar inte vara något problem, men jag vill behålla alla <p></p><br> taggar, någon som har försökt sig på något liknande?

Ett alternativ skulle vara att söka efter alla förekomster av class=Text i strängen och ersätta dem med class=TextUnformated

tacksam

Medlem sedan aug. 20039 340 inlägg
#2

Kanske inte blir 100%-igt, men kan du inte replace:a alla <p>, </p> osv med [p], {p} eller liknande och sedan ta bort taggar, och sist replace:a tillbaka.
Blir problem dock med p-taggar med attribut, men de kanske du vill ha bort?

Medlem sedan dec. 19996 522 inlägg
#3

Kom fram till att det skulle fungera om jag bara byter ut alla class=NÅGONTING till class=TextUnformated, det är bara sådana taggar som kan finnas. Frågan är bara hur man gör det :)

Medlem sedan dec. 19996 522 inlägg
#4

Löste det med

string search = @"class=Text";

string replace = "class=PrinterFriendText";

string formated = System.Text.RegularExpressions.Regex.Replace(tmpPage.ContentText, search, replace );

Inte ultimat men det fungerar för stunden

Medlem sedan sep. 20011 914 inlägg
#5
Regex.Replace(tmpPage.ContentText, "class=\"(.*?)\"", replace );
Medlem sedan dec. 19996 522 inlägg
#6

Tackar, den fungerade utmärkt :)

Medlem sedan dec. 19996 522 inlägg
#7

Dino, den ändrar inte om taggar som innehåller class=Text, vad exakt betyder det "expressionet" som du skrev

265 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)