0
を検索するために、InStr()を使用している場合、HTMLコードを検索するとき、私は複数のライン入力のために、InStr()を使用して困難を抱えている - ここでのDebug.Printでのエラーを示すコメントが私のコードの簡易版です:エラーHTML
ここで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
は、ソースHTMLコードです:私は(InStr関数の中にHTMLの複数行を渡すしようとすると、示されているように)
<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>
、それは返す何も見つけない、0です。しかし、もし私が文字列を1行に分割して繰り返して繰り返すと、うまくいきます。
HTMLを検索してリターンを得るときに、複数の行のテキストをInStr()に渡す方法はありますか?ありがとう
HTMLのように文字列に正しい数のスペースがありますか? HTMLには空白も含まれていますか? HTMLはCR/LF文字か、LFかCR文字のみを含んでいますか? (または、もう一度、多分それはどちらも持っていないかもしれませんし、ちょうどそこにいるかのようにそれを見せているビューアです) – YowE3K
'\ n'にマッチさせるために' vbCrLf'の代わりに 'vbCr'または' vbLf'を使う必要があるかもしれません。 'Asc(Mid(html_source、position、1))'を使って、ソース内の改行と改行を区別することができます。 – xidgel
ありがとうございます - 皆さんは素晴らしいです! vbLfはそれを修正しました。もしあなたが答えとして投稿してください - 私は他の人の参照のために完全にマークします。再度、感謝します! –