我正在尝试浏览网页上的数据,然后将其显示在Excel中以便于阅读,并且数据每天都会更改(它是一夜之间编译的应用程序源)。我正在使用VBA,MS HTML和MS Internet Controls,使用
HTML
<SPAN id="elementname">THIS DATA I WANT</SPAN>
VBA
set ele=htmlDoc.getElementByID("elementname")
clsApplication.whatever=trim(ele.innerHTML)
这样可以正常工作,但是当HTML就像这样
时,innerHTML不会返回任何内容<SPAN id="elementname"><h2>Element 1</h2><h3>Element 1 data</h3>THIS DATA I WANT</SPAN>
ele.getElementsByTagName("h2").length
返回0
我理解它与前面的例子不一样,但似乎无法获得数据。
有人可以提供建议吗?
非常感谢
答案 0 :(得分:2)
innerHtml
属性不包含任何内容,您正在寻找innerHTML
(区分大小写)(MDN documentation)。
尝试访问ele.innerHTML
,它应该可以正常运行。
我还建议您仔细检查HTML结构,因为它可能会导致您将来出现一些错误(inline elements不能包含block elements)。
为什么?
<强>格式强>
默认情况下,块级元素从新行开始。内容模型
通常,块级元素可以包含内联元素和其他块级元素。这种结构上的区别固有的理念是,块元素会产生更大的&#34;更大的&#34;结构而不是内联元素。
(取自block elements文件)
生成的HTML看起来像这样:
<span></span><h1></h1><h2></h2>text text
所以span 可能 为空,它只取决于浏览器如何构建损坏的HTML文档。
答案 1 :(得分:0)
<span>
标记是内联元素,不能包含<h2>
或<h3>
等块元素,这意味着HTML标记不正确。