说dw1是一个类型为msthml.htmldocument
的变量dw1.all类型是mshtml.ihtmlelementcollection
但是,dw1.body.all类型是对象。
为什么会这样?
更直言不讳。
为什么dw1.all
的类型与dw1.body.all
的类型不同?
答案 0 :(得分:1)
我得到以下
当DOM加载并解析时,你将获得body.All是当前元素下所有元素的HtmlElementCollection,如https://msdn.microsoft.com/en-us/library/system.windows.forms.htmlelement.all(v=vs.110).aspx中所定义
此表将有助于浏览此结构 https://msdn.microsoft.com/en-us/library/system.windows.forms.htmldocument(v=vs.110).aspx
All - 获取HtmlElementCollection的实例,该实例存储文档的所有HtmlElement个对象。
Body - 获取BODY标记的HtmlElement。
以下是加载DOM的方法
// Construct DOM
HTMLDocument doc = new HTMLDocument();
// Obtain the document interface
IHTMLDocument2 htmlDocument = (IHTMLDocument2)doc;
string htmlContent = "<!DOCTYPE html><html><body><h2>An unordered HTML list</h2><ul> <li>Coffee</li> <li>Tea</li> <li>Milk</li></ul></body></html>";
// Load the DOM
htmlDocument.write(htmlContent);
// Extract all body elements
IHTMLElementCollection allBody = htmlDocument.body.all;
// All page elements including body, head, style, etc
IHTMLElementCollection all = htmlDocument.all;
// Iterate all the elements and display tag names
foreach (IHTMLElement element in allBody)
{
Console.WriteLine(element.tagName);
}