VB.Net Code: String mit HTML Tags zur Laufzeit anpassen
Dieses Code-Beispiel in vb.net durchsucht einen String nach HMTL Tags mit der Kennung: < table..> und passt im String das style-Attribute an.
Zunächst sucht der Code alle Positionen, in denen das beginnende table tag vorkommt
Mit Verwendung von InStr wird die Position ermittelt.
intPos_Table = InStr(intPos_Table + 1, sText, "<table ", CompareMethod.Text)
If intPos_Table < 1 Then Exit Do
|
Dann wird das Start und Ende <HTML-Tag>-Zeichen gesucht
Dim intTag_Left As Long = InStrRev(sText, "<", intPos_Table, CompareMethod.Binary)
Dim intTag_Right As Long = InStr(intPos_Table, sText, ">", CompareMethod.Binary)
|
Und dann der eigentliche Inhalt zwischen den <Tag-Klammern> ermittelt
If intTag_Left > 0 And intTag_Right > 0 Then
Dim sElement As String = Mid(sText, intTag_Left, intTag_Right - intTag_Left + 1)
|
Danach werden aus diesem inneren HTML Element Attribute und Eigenschaften geändert.
Zum Beispiel wird das width Attribut gelöscht
'< Width loeschen >
Dim intPos_Width_Start As Long = InStr(sElement, " width=", CompareMethod.Text)
If intPos_Width_Start > 0 Then
Dim intPos_Width_Ende As Long = InStr(intPos_Width_Start + 1, sElement, " ", CompareMethod.Text)
If intPos_Width_Ende > 0 Then
sElement = Mid(sElement, 1, intPos_Width_Start) & Mid(sElement, intPos_Width_Ende + 1)
End If
End If
'</ Width loeschen >
|
Hier der komplette Code in vb.net
'--------< Korrektur Table-Widths >--------
'<table border="1" cellspacing="0" cellpadding="0" style="border: none;">
Dim intPos_Table As Long = 1
Do While intPos_Table > 0
intPos_Table = InStr(intPos_Table + 1, sText, "<table ", CompareMethod.Text)
If intPos_Table < 1 Then Exit Do
'----< Element ermitteln >----
Dim intTag_Left As Long = InStrRev(sText, "<", intPos_Table, CompareMethod.Binary)
Dim intTag_Right As Long = InStr(intPos_Table, sText, ">", CompareMethod.Binary)
If intTag_Left > 0 And intTag_Right > 0 Then
Dim sElement As String = Mid(sText, intTag_Left, intTag_Right - intTag_Left + 1)
'< Width loeschen >
Dim intPos_Width_Start As Long = InStr(sElement, " width=", CompareMethod.Text)
If intPos_Width_Start > 0 Then
Dim intPos_Width_Ende As Long = InStr(intPos_Width_Start + 1, sElement, " ", CompareMethod.Text)
If intPos_Width_Ende > 0 Then
sElement = Mid(sElement, 1, intPos_Width_Start) & Mid(sElement, intPos_Width_Ende + 1)
End If
End If
'</ Width loeschen >
'< Width setzen >
Dim intPos_Style_Start As Long = InStr(sElement, " style=", CompareMethod.Text)
If intPos_Style_Start = 0 Then
If _Zoom = 0 Then
'*thumbnail max300
sElement = Mid(sElement, 1, sElement.Length - 1) & " style=""width: 100%; max-width:500px;""" & " >"
Else
sElement = Mid(sElement, 1, sElement.Length - 1) & " style=""width: 200%; max-width:1024px;""" & " >"
End If
'</ Width setzen >
Else
If _Zoom = 0 Then
sElement = Mid(sElement, 1, intPos_Style_Start + "style=".Length + 1) & " width: 100%; max-width:500px; " & Mid(sElement, intPos_Style_Start + "style=".Length + 2)
Else
sElement = Mid(sElement, 1, intPos_Style_Start + "style=".Length + 1) & " width: 100%; max-width:1024px; " & Mid(sElement, intPos_Style_Start + "style=".Length + 2)
End If
'</ Width setzen >
End If
'--< Element austauschen >--
sText = Mid(sText, 1, intTag_Left - 1) & sElement & Mid(sText, intTag_Right + 1)
'--</ Element austauschen >--
End If
'----</ Element ermitteln >----
Loop
'--------</ Korrektur Table-Widths >--------
|
|