由于最近需要使用C#处理IE的相关操作,因此积累了一些代码,下面的代码是从HTML代码中生成DOM TreeView的例子:
//该过程将被递归调用
//dom_node是当前的HTML DOM节点
//tree_node是当前插入树的结点
private void InsertDOMNodes(IHTMLDOMNode parentnode,TreeNode tree_node)
{
int sibing=0;//当前结点在兄弟结点之间的顺序,所有的结点之间通过","隔开
//dom_node是当前的HTML DOM节点
//tree_node是当前插入树的结点
private void InsertDOMNodes(IHTMLDOMNode parentnode,TreeNode tree_node)
{
int sibing=0;//当前结点在兄弟结点之间的顺序,所有的结点之间通过","隔开
if(parentnode.hasChildNodes())
{
//level++;
//pathstring = pathstring +","+ level;
{
//level++;
//pathstring = pathstring +","+ level;
IHTMLDOMChildrenCollection allchild = (IHTMLDOMChildrenCollection)parentnode.childNodes;
int length = allchild.length;
int length = allchild.length;
for(int i=0;i<length;i++)
{
string instring = pathstring;
instring = instring +","+ sibing++;
{
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 =
TreeNode tempnode = tree_node.Nodes.Add(child_node.nodeName +"_"+instring);
//string tmp =
InsertDOMNodes(child_node,tempnode);
pathstring = instring;
}
}
}
pathstring = instring;
}
}
}
private void eVIPSBrowser_DocumentComplete(object sender, AxSHDocVw.DWebBrowserEvents2_DocumentCompleteEvent e)
{
pathstring ="0";
level = 0;
{
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);
}
IHTMLDocument3 HTMLDocument =(IHTMLDocument3)eVIPSBrowser.Document;
IHTMLDOMNode rootDomNode = (IHTMLDOMNode)HTMLDocument.documentElement;
TreeNode root = DOMTreeView.Nodes.Add("HTML"+"_"+pathstring);
InsertDOMNodes(rootDomNode,root);
}
博主因需用C#处理IE相关操作积累了代码,给出从HTML代码中生成DOM TreeView的例子。
304

被折叠的 条评论
为什么被折叠?



