微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 WinHTTPRequest 读取本地 HTML 文件

如何解决使用 WinHTTPRequest 读取本地 HTML 文件

我正在尝试以下代码

Sub myConSP()
    Dim oHtmlSP As HTMLDocument
    Dim tSPIndex As HTMLdivelement
    Dim tSPIdx As HTMLdivelement
    Dim tables As Object
    
    Set oHtmlSP = New HTMLDocument
    With CreateObject("WINHTTP.WinHTTPRequest.5.1")
        .Open "GET","C:\Users\Future\Desktop\Test.html",False
        .send
        oHtmlSP.body.innerHTML = .responseText
    End With
    Set tables = oHtmlSP.querySelectorAll("table[width='100%'] table:first-child")
    Debug.Print tables.Length
End Sub

我尝试了不同的方法来通过该代码读取 HTML 本地文件。这样的代码如何引用本地文件HTML文件

解决方法

我认为你把事情复杂化了。

试试:

Sub myConSP()
    Dim oHtmlSP As HTMLDocument

Set oHtmlSP = New HTMLDocument
oHtmlSP.body.innerHTML = "full_path"

'process the file
End Sub

,

这个方法解决了这个问题。我对变量 html 使用了后期绑定,这很重要,因为在使用早期绑定时,对于表长度的属性,我无效地使用了 NULL。

Sub NewTest()
    Dim fStream As Object,html As Object,tables As Object,sFolder As String,sFile As String

    sFolder = ThisWorkbook.Path & "\"
    sFile = "Test.html"
  
    Set fStream = CreateObject("ADODB.Stream")
    Set html = CreateObject("HtmlFile")

    With fStream
        .Charset = "UTF-8"
        .Open
        .LoadFromFile sFolder & sFile
        html.body.innerHTML = .ReadText
        .Close
    End With
  
    Set tables = html.querySelectorAll("table[width='100%'] table:first-child")
    Debug.Print tables.Length
End Sub

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。