Avatar billede voirsous Nybegynder
25. marts 2004 - 11:39 Der er 5 kommentarer og
2 løsninger

Fjerne HTML koder fra string

Hej,
jeg søger en måde til den bedste måde at fjerne html


Public Function fjernehtml(kode)
splitLeft = Split(kode, ">")
 
  For CountII = 1 To UBound(splitLeft)
  splitRight = Split(splitLeft(CountII), "<")
  cleanKode = cleanKode & splitRight(0)
  Next CountII

MsgBox cleanKode
End Function

fjerner ganskevidst < og > men nu skal alt det i mellem jo også gerne fjernes :)?
Avatar billede voirsous Nybegynder
25. marts 2004 - 11:44 #1
jeg søger en måde til at fjerne html fra en streng
Avatar billede sjh Nybegynder
25. marts 2004 - 17:00 #2
'--------------------------- Form1 ---------------------------
Option Explicit

Private Sub Command1_Click()
  Text1.Text = TrimHtml(Text1.Text)
End Sub

Public Function TrimHtml(ByVal strHtml As String) As String
Dim i As Long
Dim blnHtml As Boolean
Dim strOne As String
Dim strOut As String
  For i = 1 To Len(strHtml)
    strOne = Mid$(strHtml, i, 1)
    Select Case strOne
          Case "<"
            blnHtml = True
          Case ">"
            blnHtml = False
          Case Else
            If Not blnHtml Then
              strOut = (strOut & strOne)
            End If
    End Select
  Next
  TrimHtml = strOut
End Function
'--------------------------- Form1 ---------------------------
Avatar billede mikh Juniormester
25. marts 2004 - 17:02 #3
Her er lidt kode.
Den er lidt primitiv, men den klarer jobbet.

Public Function fjernehtml(kode) As String
'Kode = "Dette er ikke HTML <Her er HTML > Dette er en prøve" i testen
'Resultat = cleanKode = "Dette er ikke HTML  Dette er en prøve"
Dim Tegn As String
Dim Tegn1 As String
Dim Tegn2 As String
Dim cleanKode As String
Dim i As Integer
Dim k As Integer
Dim m As Integer

Tegn1 = "<"
Tegn2 = ">"

For i = 1 To Len(kode)
    Tegn = Mid(kode, i, 1)
    If Tegn = Tegn1 Then
        k = i
        Exit For
    End If
Next i
For i = k To Len(kode)
    Tegn = Mid(kode, i, 1)
    If Tegn = Tegn2 Then
        m = i
        Exit For
    End If
Next i

cleanKode = Left(kode, k - 1) & Mid(kode, m + 1, Len(kode) - m)

MsgBox cleanKode
End Function
Avatar billede voirsous Nybegynder
25. marts 2004 - 21:27 #4
mikh din kode gav 'overflow', ved 'normale' html filer.
Jeg har ikke gransket i hvorfor, da min kode:

Private Sub Command1_Click()
  Text1.Text = TrimHtml(Text1.Text)
End Sub

Public Function TrimHtml(ByVal strHtml As String) As String
Dim i As Long
Dim blnHtml As Boolean
Dim strOne As String
Dim strOut As String
  For i = 1 To Len(strHtml)
    strOne = Mid$(strHtml, i, 1)
    Select Case strOne
          Case "<"
            blnHtml = True
          Case ">"
            blnHtml = False
          Case Else
            If Not blnHtml Then
              strOut = (strOut & strOne)
            End If
    End Select
  Next
  TrimHtml = strOut
End Function

Men i bliver alligevel begge 'belønnet' fordi i gad se på det :).
Mange tak!
Avatar billede voirsous Nybegynder
25. marts 2004 - 21:27 #5
forkert snip>

den her:


Public Function fjernehtml(kode)
kode = Replace(Replace(LCase(kode), "&nbsp;", " "), " ", "{|=}")


splitLeft = Split(kode, ">")

  For CountII = 1 To UBound(splitLeft)
  splitRight = Split(splitLeft(CountII), "<")
  If UBound(splitRight) > 0 Then
    cleanKode = cleanKode & splitRight(0)
  End If
   
  Next CountII

Form1.tekst.Text = Replace(cleanKode, "{|=}", " ")


End Function
Avatar billede voirsous Nybegynder
25. marts 2004 - 21:28 #6
hmm det kører replace() kommandoerne øverst og nederst er selvfølgelig overflødige :)
Avatar billede mikh Juniormester
26. marts 2004 - 14:54 #7
Tak for pointene ;-)

mikh
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

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