2011-04-15 18 views
0

如果我在VBA中創建IE應用程序對象,我可以下載網頁並使用document屬性來調用getElementById之類的函數。但是,我非常想要DOM遍歷功能。在VBA中使用Treewalker進行HTML DOM遍歷

該文檔定義了一個treeWalker對象,看起來很有希望,但我只是不能使createTreeWalker工作。我在createTreeWalker的函數調用中遇到了object required錯誤。有沒有人使用過這種方法,或者有人可以指點我通過VBA使用treeWalker的例子嗎?

+0

對TreeWalker無能爲力,但我會告訴你,我有一段時間試圖遍歷一個HTML DOM,直到我發現我需要引用'Document.frame.Document.control'而不是'Document.frame.control'。這是前一段時間,和僱主專有的...... – RolandTumble 2011-04-15 18:04:48

+0

如果有關的網頁是格式良好的XHTML,那麼你可以使用「XMLHTTP60」對象下載它們 - 請參閱http://msdn.microsoft.com/en-我們/庫/ ms757026%28V = VS.85%29.aspx – barrowc 2011-04-16 00:26:49

回答

1

似乎TreeWalker直到至少IE9(我的僱主不提供遺憾)才能實現。不過,我仍然使用下列屬性管理DOM遍歷:

.childNodes(x) 'x begins at 0 
.parentNode 
.nextSibling 
.innerHTML 

這些屬性適用於幾乎任何一種getElementById()可能拋出起來,這些在earleir IE版本中實現,以及節點。