在VBA

时间:2016-05-21 21:22:05

标签: vba

想象一下以下HTML:

<div class="TheChef">
    <div class="ChefRestaurant">
        <a class="ChefLink" href="#">Expensive Restaurant</a>
    </div>
    <div class="ChefName">
        <a class="ChefLink" href="#">Gordon Ramsey</a>
    </div>
</div>

在下面的代码中,我在VBA中使用getElementsByClassName从元素中获取innerHTML:

Dim oHtml As HTMLDocument
Dim oElement As Object
Set oHtml = New HTMLDocument

With CreateObject("WINHTTP.WinHTTPRequest.5.1")
    .Open "GET", "http://www.example.net", False
    .send
    oHtml.body.innerHTML = .responseText
End With

For Each oElement In oHtml.getElementsByClassName("RestaurantTown")
    strTown = oElement.innerHTML
Next oElement

但是,我需要从ChefRestaurant&amp; ChefName元素。

我想知道oHtml.getElementsByClassName(&#34; ChefName&#34;)。getElementsByClassName(&#34; ChefLink&#34;)但这不起作用。

我该怎么做?

由于

2 个答案:

答案 0 :(得分:0)

.getElementsByClassName方法返回节点集合,您应该从索引中选择集合中的节点,然后再次调用该方法:

oHtml.getElementsByClassName("ChefName")(0).getElementsByClassName("ChefLink")(0)

答案 1 :(得分:0)

document.getElementsByClassName("ChefLink")

为您提供[<a class=​"ChefLink" href=​"#">​Expensive Restaurant​</a>​, <a class=​"ChefLink" href=​"#">​Gordon Ramsey​</a>​]

虽然document.getElementsByClassName("ChefLink")[1]仅为您提供了第二个元素<a class=​"ChefLink" href=​"#">​Gordon Ramsey​</a>

我希望这会有所帮助