【问题标题】:How to access innerText of HTML tag inside a <TD> tag如何在 <TD> 标签内访问 HTML 标签的 innerText
【发布时间】:2015-08-08 14:15:00
【问题描述】:

我想从包含此内容的网页中获取一些文本。我想获得带有 href="#spec_Brand" 的信息。

<td class="table_spec">
    <dl>
        <dt class="table_spec_title">
            <a class="href_icon href_icon_help table_spec_titleimg" title="Which manufacturer is producing the product?" href="#spec_Brand">
                <span>Brand</span>
            </a>
            <span class="table_spec_titletext">Brand</span>
        </dt>
        <dd class="table_spec_definition">
            Producer of the product?
        </dd>
    </dl>
</td>

我正在尝试使用:

Set TDelementsA = HTMLdoc.getElementsByTagName("TD")
    While r < TDelementsA.Length
      If TDelementsA.className = "table_spec" Then
         Sheet4.Range("A1").Offset(r, c).Value = TDelement.innerText
    End If

但它给了我: 牌 产品的生产商?

代替

spec_Brand

有人可以帮我吗?

【问题讨论】:

  • 当您实际写入工作表时,您从 SetWhileIf 行中的 TDelementsA 切换到 TDelement。希望这里只是一个错字,而不是在实际代码中

标签: html excel html-parsing excel-2003 vba


【解决方案1】:

这是你正在尝试的吗? (注意我将上面的 html 存储在 Sheet1 的单元格 A1 中用于测试)。我也在使用 IE 的后期绑定

Option Explicit

Sub Sample()
    Dim ie As Object
    Dim links As Variant, lnk As Variant

    Set ie = CreateObject("InternetExplorer.Application")
    ie.Visible = True
    ie.navigate "About: Blank"

    ie.document.body.innerhtml = Sheets("Sheet1").Range("A1").Value

    Set links = ie.document.getElementsByTagName("a")

    For Each lnk In links
        If lnk.classname = "href_icon href_icon_help table_spec_titleimg" Then
            Debug.Print lnk.innertext
            Exit For
        End If
    Next
End Sub

屏幕截图

【讨论】:

  • 谢谢,如前所述,我正在循环遍历 TD 元素。一个 2 列的表,表的左列将文本隐藏在标签内,而右列的 innerText 是我想要的。所以我使用了 TD 标签。但我想我可以遍历表 2 次,第一列搜索 -tags,第二列搜索 -tags;虽然我想了解是否以及如何访问标签中的标签。
猜你喜欢
  • 2011-04-13
  • 2020-12-24
  • 1970-01-01
  • 2015-11-17
  • 1970-01-01
  • 2021-08-01
  • 1970-01-01
  • 2012-01-19
  • 1970-01-01
相关资源
最近更新 更多