Avatar billede c-sharp Nybegynder
23. august 2007 - 09:47 Der er 9 kommentarer og
1 løsning

Hjælp til at fjerne HTML tags fra tekst

Jeg skal have fjernet alle HTML tags fra en tekst jeg har så brugt følgende kode, men den har problemer med specialtegn:

Nogen der har noget bedre kode, eller kan tilrette min?

    private string clean(string Contents)
    {

        if (Contents.IndexOf("startnav") != -1)
        {
            int startnav = Contents.IndexOf("startnav");
            int endnav = Contents.IndexOf("endnav");
            int lengthnav = endnav - startnav;
            string subContents = Contents.Substring(startnav, lengthnav);
            Contents = Contents.Replace(subContents, "");
        }
        Contents = Regex.Replace(Contents, "<(select|option|script|style|title)(.*?)>((.|\n)*?)</(select|option|script|style|title)>", " ", RegexOptions.IgnoreCase);
        Contents = Regex.Replace(Contents, "&(nbsp|quot|copy);", "");
        Contents = Regex.Replace(Contents, "<([\\s\\S])+?>", " ", RegexOptions.IgnoreCase).Replace("  ", " ");
        Contents = Regex.Replace(Contents, "\\W", " ");
        return Contents;

    }
Avatar billede x-guy Nybegynder
23. august 2007 - 11:01 #1
Hvilke specialtegn mener du?
Avatar billede c-sharp Nybegynder
23. august 2007 - 11:10 #2
eks. æ som i tekststrengen står som "&aelig;"
Avatar billede x-guy Nybegynder
23. august 2007 - 11:16 #3
Prøv at bruge Server.HtmlDecode(string) i stedet for et regex.
Du skal så bare først gøre det efter du har fjerne html tags.
Avatar billede c-sharp Nybegynder
23. august 2007 - 11:25 #4
det hjælper ikke det stor for den fjerner "&" og ";" fra æ tag'et så der kun står "aelig" tilbage.
Avatar billede x-guy Nybegynder
23. august 2007 - 11:45 #5
Okay, det fatter jeg ikke en dyt af...
Hvis jeg bruger Server.HtmlDecode på en streng med "&aelig;" i, så får jeg et "æ" tilbage.

Response.Write(Server.HtmlDecode("&aelig;"))
Avatar billede x-guy Nybegynder
23. august 2007 - 11:57 #6
Jeg har lavet et hurtigt eksempel på noget der virker fint for mig (det er i vb, sorry):

Public Function ConvertHtmlTextToPlainText(ByVal htmlText As String)
        Dim plain As String

        ' Fjern tags
        plain = Regex.Replace(htmlText, "<[^>]*>", String.Empty, RegexOptions.IgnoreCase)

        ' Fjern encoding ("&amp;" --> "&" osv.)
        plain = Server.HtmlDecode(plain)

        Return plain
    End Function

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Response.Write(ConvertHtmlTextToPlainText("<b>&aelig;</b>"))
    End Sub
Avatar billede c-sharp Nybegynder
23. august 2007 - 13:28 #7
Ja det er rigtg nok hvis jeg bruger din metode til at fjerne HTML tags, problemet er bare at din metode ikke fjerne alle HTML tags. Hvis du bruger min metode virker det ikke.
Avatar billede x-guy Nybegynder
23. august 2007 - 13:52 #8
Hvilke tags fjerner den ikke?
Avatar billede c-sharp Nybegynder
23. august 2007 - 14:21 #9
f.eks: <strong></strong>
Avatar billede c-sharp Nybegynder
12. december 2007 - 13:11 #10
Lukker da der åbenbart ikke sker mere her
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester