VBA获取元素的父节点

时间:2013-09-27 14:48:52

标签: html vba ms-word

我有一个脚本解析HTML页面以查找具有指定ID的元素。我需要的是获取父节点(实际上,我需要向上移动2个父节点),这样我就可以遍历表中的所有链接以找到我想要的链接,这样我就可以解析整个HTML表找到我想要的链接。

Sub testmacro()

'Constants
Const pdlID = "Id of the element"
Const urlbase = "what ever url"

'containers
Dim web As Object
Dim prompt As String
Dim pdlTbl As Object
Dim pdllink As Object


'Get URL
prompt = InputBox("Paste the URL here: ", "URL")

'create IE instance
Set web = CreateObject("InternetExplorer.Application")
web.Visible = True
web.Navigate prompt

Do While web.Busy Or web.ReadyState <> 4
    DoEvents
Loop

'get IE document
Set pdlTbl = web.Document
Set pdlTbl = pdlTbl.getelementbyid(pdlID)

'Get parent node of element

web.Quit
Set web = Nothing

End Sub

我试图找到有关获取父节点的信息,但我无法帮助找到父节点。

此外,我在尝试循环文档中的元素时遇到了重大问题。我从这个站点抓取了许多代码示例,他们都返回了相同的错误“对象不支持这种方法”或类似的东西。它突出显示了这样的循环中的第一行。

for each a in pdltbl

next a

无论我尝试使用哪个标签或我查看的元素类型(pdlID指的是TD元素以供参考),都会出现此错误

基本上,我只是希望能够在表格中搜索以查找具有特定URL的链接(基于提示中的URL)

1 个答案:

答案 0 :(得分:3)

Set pdlTbl = pdlTbl.getelementbyid(pdlID)
Set parentParent = pdlTbl.parentElement.parentElement

获取表格中的所有链接:

Set allLinks = tbl.getElementsByTagName("a")
For Each a in allLinks
    '...
Next a