vba htmldocument如何删除特定元素

时间:2015-01-22 14:04:38

标签: vba removechild dom

我在VBA中编写代码。 如何删除特定元素? 谢谢

Dim html As MSHTML.HTMLDocument
Set html = New MSHTML.HTMLDocument

Dim document As MSHTML.HTMLDocument
Set document = html.createDocumentFromUrl("http://example.com/", vbNullString)

' wait download
Do While document.readyState <> "complete"
Loop

' Insert I Can
Call document.DocumentElement.insertAdjacentHTML("afterend", "<div>test</div>")

' I want to delete a specific element here But I fail
' Call document.removeNode("specific element")

1 个答案:

答案 0 :(得分:0)

您无法删除元素,但您可以删除大致相同的节点。

Function DelTagById(strData As String, strID As String) As String

    On Local Error GoTo MyError

    Dim HTMLDoc As HTMLDocument
    Dim Node As IHTMLDOMNode

    DelTagById = strData
    If strID = "" Then GoTo MyExit

    Set HTMLDoc = New HTMLDocument
    HTMLDoc.body.innerHTML = strData

    Set Node = HTMLDoc.getElementById(strID)
    If Node Is Nothing Then GoTo MyExit
    Node.parentNode.removeChild Node

    DelTagById = HTMLDoc.body.innerHTML

MyExit:
    Set Node = Nothing
    Set HTMLDoc = Nothing
    Exit Function
MyError:
    'Handle Error
    Resume MyExit

End Function