以下代码适用于标准 html 标记,例如div或p。这将删除第一个累积标签:
Dim htmlDoc As HTMLDocument
Dim Node As IHTMLDOMNode
Set htmlDoc = New HTMLDocument
htmlDoc.body.innerHTML = strSomeData
Set Node = htmlDoc.getElementsByTagName(strSomeTagName).item(0)
Node.parentNode.removeChild Node
但是,当您读取带有 Angular 标签名称(如article或main或任何其他非标准 html 标签名称)的 HTMLDocument 时,getElementsByTagName() 无法正确读取 DOM。提取节点的提取 .outerHTML 仅包含开始标记,而 .innerHTML 为空。当您删除这样一个节点时,只会从 HTMLDocument 中删除开始标记,因此破坏了 DOM 结构的整个逻辑。
我在这里错过了什么吗?