HTML Strip function
BlitzMax Forums/BlitzMax Programming/HTML Strip function
| ||
| Can somebody write a HTML strip function for me (gimme da codez)? |
| ||
Here you go - this is a very simple implementation though, and it does not strip comments or ignore tag characters in strings.
Print stripTags("<html><head><title>This Is A title</title></head><body>Whatever</body></html>")
Function stripTags:String(text:String)
Local tagDepth
Local output:String
For Local i=0 Until text.length
If text[i]=Asc("<") tagDepth :+ 1
If tagDepth=0
output = output + Chr(text[i])
End If
If text[i]=Asc(">") tagDepth :- 1
Next
Return output
End Function
|
| ||
Damn. Just when I finished mine :). Well here's my version, somewhat complicated:
Function HTMLStrip$(Line$,DelDoubleSpaces=0)
Local T
For Local L = 1 To Len(Line$)
If Mid$(Line$,L,1) = "<" Then
T = L
Repeat
T = T + 1
Until (Mid$(Line$,T,1) = ">") Or (T = Len(Line$))
Line$ = Line$.Replace(Mid$(Line$,L,T-L+1),"")
L = 0
EndIf
Next
If DelDoubleSpaces = 0 Then
Return Line$
Else
Return Line$.Replace(" "," ")
EndIf
End Function
|
| ||
An now the fastest way ;)
Function StripTags:String(Text:String)
Local Opened:Int = False
Local Asc1:Int = Asc("<")
Local Asc2:Int = Asc(">")
Local j:Int = 0
Local Result:Byte[Text.Length]
For Local i:Int = 0 Until Text.Length
If Text[i] = Asc1
Opened = True
Continue
ElseIf Text[i] = Asc2
Opened = False
Continue
EndIf
If Opened = True
Continue
EndIf
Result[j] = Text[i]
j:+1
Next
Return string.FromBytes(Result, j)
End Function
Mfg Suco |