我正在尝试从字符串中删除HTML并找到two methods in this SO thread。
第一个答案的代码有效,但使用后期绑定。
With CreateObject("htmlfile")
.Open
.write "<p>foo <i>bar</i> <u class='farp'>argle </zzzz> hello </p>"
.Close
MsgBox "text=" & .body.outerText
End With
使用早期绑定的替代答案的代码给出了编译错误(“标记为受限制的函数或接口,或者该函数使用Visual Basic中不支持的自动化类型”)。
Public Function StripHtml(inputHtml As String) As String
With New HTMLDocument
.Open
'Following line gives compile error
.write "<p>foo <i>bar</i> <u class='farp'>argle </zzzz> hello </p>"
.Close
StripHtml = .body.outerText
End With
End Function
我的问题:
CreateObject("htmlfile")
可以正常工作?答案 0 :(得分:1)
这两个是等价的,我想
Option Explicit
Sub Macro1()
Dim aaa As Object
Set aaa = CreateObject("htmlfile")
aaa.Open
aaa.write "<p>foo <i>bar</i> <u class='farp'>argle </zzzz> hello </p>"
aaa.Close
Debug.Print "text=" & aaa.body.outerText
' ---------------------------------------------------
Dim bbb As New HTMLDocument
bbb.body.innerHTML = "<p>foo <i>bar</i> <u class='farp'>argle </zzzz> hello </p>"
Debug.Print "text=" & bbb.body.outerText
End Sub
关于CreateObject("htmlfile")
的问题应该阅读“为什么With CreateObject("htmlfile")
有效...”
with
命令创建一个临时的,未命名的对象(它类似于某些语言中使用的lambda函数)
如果你需要检查它,那么使用set命令创建一个引用它的变量