C#中從HTML產生DOM TreeView的代碼

來源:互聯網
上載者:User
dom|treeview

由於最近需要使用C#處理IE的相關操作,因此積累了一些代碼,下面的代碼是從HTML代碼中產生DOM TreeView的例子:


//該過程將被遞迴調用
  //dom_node是當前的HTML DOM節點
  //tree_node是當前插入樹的結點
  private void InsertDOMNodes(IHTMLDOMNode parentnode,TreeNode tree_node)
  {
  
   int sibing=0;//當前結點在兄弟結點之間的順序,所有的結點之間通過","隔開
   if(parentnode.hasChildNodes())
   {
    //level++;
    //pathstring = pathstring +","+ level;
    IHTMLDOMChildrenCollection allchild = (IHTMLDOMChildrenCollection)parentnode.childNodes;
    int length = allchild.length;
    for(int i=0;i<length;i++)
    {
     string instring = pathstring;
     instring = instring +","+ sibing++;
     IHTMLDOMNode child_node = (IHTMLDOMNode)allchild.item(i);
     TreeNode tempnode = tree_node.Nodes.Add(child_node.nodeName +"_"+instring);
     //string tmp =
     InsertDOMNodes(child_node,tempnode);
     pathstring = instring;
    }
   }
  }
  private void eVIPSBrowser_DocumentComplete(object sender, AxSHDocVw.DWebBrowserEvents2_DocumentCompleteEvent e)
  {
   pathstring ="0";
   level = 0;
   DOMTreeView.Nodes.Clear();
   IHTMLDocument3 HTMLDocument =(IHTMLDocument3)eVIPSBrowser.Document;
   IHTMLDOMNode rootDomNode = (IHTMLDOMNode)HTMLDocument.documentElement;
  
   TreeNode root = DOMTreeView.Nodes.Add("HTML"+"_"+pathstring);
   InsertDOMNodes(rootDomNode,root);
  }

 



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.