#

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 >--------

 
Mobile

.

yesmovies