首页 > 解决方案 > getElementsByTagName 不返回任何标签(.length 函数返回 0)

问题描述

我正在尝试使用 VBA 和 IE 自动化从包含 XML 的网页中提取值。目前,该程序打开一个 IE 浏览器,将 XML 代码复制到一个窗口中并单击一个按钮,从而对 XML 进行计算。然后,这会在同一窗口中使用生成的 XML 代码加载一个新页面。我试图解析这个并得到一个值。

我能够提取一些标签的值,包括 a 和 span 标签。span 标签返回的值接近我需要的值,但我无法提取确切的值。

代码:

'browser previously defined, it is on the page with the xml

Dim oHTML As HTMLDocument
Dim elements As IHTMLElementCollection

Set  oHTML = browser.document

Set elements = oHTML.getElementsByTagName("total_tax_amount")

Debug.Print elements.Length 

'above returns 0, there are about 20 of those elements in the document

期望它返回 20-25 个元素,但它返回 0。该图像显示了网站上的 html 标签在 total_tax_amount 的第一个位置的样子。

例子

标签: excelvbagetelementsbytagname

解决方案


Set elements = oHTML.all

str = elements.Item(0).getElementsByTagName("TOTAL_TAX_AMOUNT")(i).textContent

解决了这个问题,如果将来有人遇到这个问题。


推荐阅读