为什么mshtml.htmldocument.body.all的类型只是对象?

时间:2015-11-08 05:03:47

标签: microsoft.mshtml

说dw1是一个类型为msthml.htmldocument

的变量

dw1.all类型是mshtml.ihtmlelementcollection

但是,dw1.body.all类型是对象。

为什么会这样?

更直言不讳。

为什么dw1.all的类型与dw1.body.all的类型不同?

1 个答案:

答案 0 :(得分:1)

我得到以下

enter image description here

当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);
        }