【问题标题】:Parse line from HTML response in Excel VBA从 Excel VBA 中的 HTML 响应解析行
【发布时间】:2022-01-06 13:36:56
【问题描述】:

我希望在 Excel VBA 中解析“WinHttpRequest”响应以从 HTML 响应中提取特定行。这是 HTTP 请求的代码。

Function getSetName(ByVal setNUMBER As String) As String
    Dim oRequest As Object
    Dim xmlResponse As String
    Dim setDescription As String
    Dim setName As String
   

    Set oRequest = CreateObject("WinHttp.WinHttpRequest.5.1")

    oRequest.Open "GET", "https://brickset.com/sets/75192" '& setNUMBER
    oRequest.Send
    xmlResponse = oRequest.ResponseText
    
    'parse xml response here
    
    getSetName = setName

End Function

我希望仅将带有 HTML 标记 'meta name=""description""' 的行解析为一个字符串,稍后我将从中提取信息。

任何关于如何解析这一行的帮助或指导将不胜感激。

【问题讨论】:

  • 这里有很多关于 SO(和其他地方)的帖子,涉及解析 XM。例如:stackoverflow.com/questions/11305/… 你真的是在解析 XML 还是 HTML?
  • 你是对的,正在解析 HTML。

标签: excel vba xml-parsing winhttprequest


【解决方案1】:

试试

Sub Test_GetSetName()
    Debug.Print GetSetName("75192")
End Sub

Function GetSetName(ByVal SetNUMBER As String) As String
    Dim html As New MSHTML.HTMLDocument
    With CreateObject("WinHttp.WinHttpRequest.5.1")
        .Open "GET", "https://brickset.com/sets/" & SetNUMBER, False
        .send
        html.body.innerHTML = .responseText
    End With
    GetSetName = html.querySelector("[name='description']").Content
End Function

【讨论】:

  • 感谢您的帮助,只需要确保在“工具”>“参考”下也选择了“Microsoft HTML 对象库”。
猜你喜欢
  • 2020-03-14
  • 2018-11-19
  • 2020-01-19
  • 1970-01-01
  • 2017-09-13
  • 2018-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多