C#中从HTML生成DOM TreeView的代码

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

 

时间: 2024-12-10 23:02:39

C#中从HTML生成DOM TreeView的代码的相关文章

asp.net中利用QRCode生成二维码代码

1.使用下面代码首先需要下载QRCode.DLL文件引用到你的项目中  代码如下 复制代码 //生成二维码代码 public string generateQRCode() {     //生成二维码     string filename = string.Empty;     string filepath = string.Empty;       string txt_qr = "需要生成二维码信息";     string qrEncoding = "Byte&qu

C#下从HTML文件生成DOM树

dom 由于最近需要使用C#进行IE的相关编程,因此特整理出相应的代码出来,下面的代码是访问HTML,并生成TreeView DOM书的代码: private void InsertDOMNodes(IHTMLDOMNode parentnode,TreeNode tree_node)  {   if(parentnode.hasChildNodes())   {    IHTMLDOMChildrenCollection allchild = (IHTMLDOMChildrenCollecti

自动生成的TreeView,frameset框架,如何跳转

问题描述 <framesetcols="20%,*"><framesrc="indexLeft1.aspx"id="indexLeft1"name="indexLeft1"title="topFrame"/><framesrc="indexBodyShow.aspx"id="indexBody"name="indexBody&q

关于动态生成dom绑定事件失效的原因及解决方法_jquery

之前做项目都是直接用jquery的bind绑定事件,不过当时都不是动态生成dom元素,而是已经页面中原本存在的dom元素进行事件绑定,最近在测试给动态生成的dom绑定事件的时候发现事件失效,于是就测试了一下: 1. 事件失效的原因: (1)bind事件绑定只对dom中存在的元素有效,对于我们后来动态增加的元素是监测不到,所以绑定不了 (2)同样,当你使用var aa = document.getElementsByTagName("动态生成的元素");来获取动态生成的元素的时候也是获取

如何在ASP.NET中获取随机生成的cookie加密与验证密钥

asp.net|cookie|加密|随机     本文是从ASP.NE T 1.1升级到ASP.NET 2.0需要考虑的Cookie问题的补充,通过示例代码说明如何通过反射在ASP.NET 1.1与ASP.NET 2.0中获取随机生成的cookie加密与验证密钥.ASP.NET 1.1示例代码:            object machineKeyConfig = HttpContext.Current.GetConfig("system.web/machineKey");    

在ASP.NET中上传图片并生成缩略图的C#源码

asp.net|上传|上传图片|缩略图 在ASP.NET中上传图片并生成缩略图的C#源码 using System;   using System.Collections;   using System.ComponentModel;   using System.Data;   using System.Drawing;   using System.Web;   using System.Web.SessionState;   using System.Web.UI;   using Sys

如何在NodeJS中调用SS生成的DLL

要想在NodeJS中调用SS生成的DLL, 需要借助EdgeJS. EdgeJS: http://tjanczuk.github.io/edge/ 如果你还不知道如何在SS 中生成DLL, 请查看: Spider Studio 新版本 (x-mas) - 可以引入第三方程序集, 可以将脚本生成为DLL 下面以曾经写过的XML/JSON互转的脚本为例 (C#中 另辟蹊径解决JSON / XML互转的问题) 说明如何在NodeJS中应用SS DLL: 1. 安装edgejs npm install

在ASP.NET中上传图片并生成缩略图

在ASP.NET中上传图片并生成缩略图,可以参照下列代码: private void btnUploadPicture_Click(object sender, System.EventArgs e){//检查上传文件的格式是否有效if(this.UploadFile.PostedFile.ContentType.ToLower().IndexOf("image") < 0){Response.Write("上传图片格式无效!");return;}//生成原图

C#中获取、生成随机数的三种方法

  这篇文章主要介绍了C#中获取.生成随机数的三种方法,本文讲解了Random 类生成法.Guid 类生成法以及RNGCryptoServiceProvider 类生成法,需要的朋友可以参考下 随机数的定义为:产生的所有数字毫无关系. 在实际应用中很多地方会用到随机数,比如需要生成唯一的订单号. 在C#中获取随机数有三种方法: 一.Random 类 Random类默认的无参构造函数可以根据当前系统时钟为种子,进行一系列算法得出要求范围内的伪随机数. 代码如下: Random rd = new R