kou*_*bin 2 html excel vba dom
任何人都可以请求我显示VBA代码的一部分,它会从这个示例在线HTML表中获得文本"hello"吗?第一个节点将通过他的ID(id ="something")找到.
...
<table id="something">
  <tr>
    <td><TABLE><TR><TD></TD></TR><TR><TD></TD></TR></TABLE></td><td></td>
  </tr>
  <tr>
    <td></td><td></td><td>hello</td>
  </tr>
...
我认为它会是这样的child->sibling->child->sibling->sibling->child,但我不知道确切的方式.
EDIT 
更新的代码标签是CAPITALS.所以,如果我使用getElemenetsById("something").getElemenetsByTagName('tr')它只收集两个tr标签,或四个(标签是更深的孩子)?
如果您确实搜索了答案,则可能希望下次扩大范围.有很多问题和答案都涉及DOM的东西和VBA.
在HTMLElement上使用getElementById而不是HTMLDocument
虽然问题(和答案)并不完全符合您的要求,但它会告诉您如何创建可以使用的东西.
你需要使用混合物getElementById()并getElemenetsByTagName()检索你想要的"你好"
例如: Document.getElementById("something").getElementsByTagName("tr")(1).getElementsByTagName("td")(2).innerText
这些对象使用基于0的数组,因此第一项是项(0).
更新
document.getElementById()将返回一个(单数)IHTMLElement(将包含其所有子节点)或没有/ null(如果它不存在).
document.getElementsByTagName()将返回IHTMLElement 的集合(同样,每个元素将包括其所有子元素).(如果不存在,则为空集合)
document.getElementsByTagName("tr") 这将返回"document"元素中的所有tr元素.
document.getElementsByTagName("tr")(0)将从集合中返回第一个(单数)IHTMLElement.(注意结尾的索引?)
在VBA中没有(我能找到)InternetExplorer对象的"兄弟"功能,所以你必须使用子索引手动完成.
使用DOM函数是一种干净的方法.它比仅仅查看链"Element.Children(0).children(1).children(2)"更清晰,因为你不知道索引意味着什么而不用手动查找它.
| 归档时间: | 
 | 
| 查看次数: | 35127 次 | 
| 最近记录: |