ich Schwierigkeiten habe, bin mit InStr() für die Eingänge mehrzeilige, wenn sie durch HTML-Code suchen - hier ist eine vereinfachte Version von meinem Code mit Kommentaren Fehler bei debug.print zeigen:Fehler beim InStr() unter Verwendung von HTML suchen
Sub TestInStr()
Dim XMLPage As New MSXML2.XMLHTTP60
Dim html
XMLPage.Open "GET", "https://www.hltv.org/stats/matches/mapstatsid/48623/masterminds-vs-riotous-raccoons", False
XMLPage.send
If XMLPage.Status <> 200 Then MsgBox XMLPage.statusText
html = XMLPage.responseText
Dim str1, str2, str3, str4 As String
'Multi Line HTML
str1 = "<div class=""bold"">Breakdown</div>" & vbCrLf & " </div>" & vbCrLf & " <div class=""match-info-row"">" & vbCrLf & " <div class=""right"">"
str2 = "</div>" & vbCrLf & " <div class=""bold"">Team rating</div>"
Debug.Print InStr(html, str1) 'Cant find, value = 0 (Multi Line HTML)
Debug.Print InStr(html, str2) 'Cant find, value = 0 (Multi Line HTML)
'Single Line HTML
str3 = "<div class=""bold"">Breakdown</div>"
str4 = "<div class=""match-info-row"">"
Debug.Print InStr(html, str3) 'Found, value = 15503 (Single Line HTML)
Debug.Print InStr(html, str4) 'Found, value = 15208 (Single Line HTML)
End Sub
Hier ist der HTML-Quellcode:
<div class="bold">Breakdown</div>
</div>
<div class="match-info-row">
<div class="right">0.91 : 1.27</div>
<div class="bold">Team rating</div>
Wie gezeigt, wenn ich versuche, mehrere Zeilen HTML-Code in InStr() übergeben, es zurück a 0, nichts zu finden. Aber wenn ich dasselbe mache, indem ich die Saite in einzelne Zeilen zerlege und wiederhole - es funktioniert gut.
Gibt es eine Möglichkeit, wie ich mehrere Zeilen Text in InStr() übergeben kann, wenn Sie HTML durchsuchen und eine Rückgabe erhalten? Danke
Haben Sie die richtige Anzahl von Leerzeichen in Ihrer Zeichenfolge wie im HTML? Enthält das HTML sogar Leerzeichen? (Es könnte in jeder Anwendung, die Sie zum Anzeigen verwenden, einfach so aussehen.) Enthält der HTML-Code CR/LF-Zeichen oder nur LF- oder nur CR-Zeichen? (Oder, wieder, vielleicht hat es auch keinen und es ist nur der Betrachter, der es zeigt, als wären sie da.) – YowE3K
Sie müssen 'vbCr' oder' vbLf' anstelle von 'vbCrLf' verwenden, um' \ n' zu finden . Sie können 'Asc (Mid (html_source, position, 1))' 'verwenden, um einen Wagenrücklauf von einem Zeilenvorschub in der Quelle zu unterscheiden. – xidgel
Vielen Dank - Ihr seid großartig !! vbLf hat es behoben. Wenn Sie dies bitte als Antwort posten könnten - werde ich es als vollständig für andere Referenz markieren. Danke noch einmal! –