HTML DOM Tree

L

Le Minh

I want to construct a DOM tree from the HTML source code. How can i get it ?
Do you show me some source code for this.
Thanks.
 
L

Le Minh

I had tried to use it. Create HtmlDocument from Uri and extract node from
it. But there smth wrong. The result it not good.
 
M

Michael Nemtsev

Hello Le,

And? what's wrong there are no one clairvoyant

LM> I had tried to use it. Create HtmlDocument from Uri and extract node
LM> from it. But there smth wrong. The result it not good.
LM>
---
WBR,
Michael Nemtsev :: blog: http://spaces.live.com/laflour

"At times one remains faithful to a cause only because its opponents do not
cease to be insipid." (c) Friedrich Nietzsch
 
L

Le Minh

I follow a suggest by Dave Sexton:
1. Create a new Windows application project.
2. Add a WebBrowser control from the toolbox onto Form1. (You can position
it however you'd like)
3. Add a TreeView control from the toolbox onto Form1. (You can position it
however you'd like)
4. Set the WebBrowser.Url property to the url of your html document (this is
the easiest way to load the document).
5. Create an event handler for the WebBrowser.DocumentCompleted event. It
should look like the following:

private void webBrowser1_DocumentCompleted(object sender,
WebBrowserDocumentCompletedEventArgs e)
{
// make sure that the TreeView is cleared in case the browser navigates
to another url
treeView1.Nodes.Clear();

// create the root node for the TreeView, which will contain all other
nodes
TreeNode rootNode = treeView1.Nodes.Add("Root");

// Fill the TreeView, recursively, starting from the root node
FillTreeViewRecursively(rootNode, webBrowser1.Document.All);
}

6. Create the FillTreeViewRecursively method:

private void FillTreeViewRecursively(TreeNode currentNode,
HtmlElementCollection elements)
{
// loop through the specified collection of elements and create their
respective nodes
foreach (HtmlElement element in elements)
{
// create a new node for the current element and add it under the
currentNode
TreeNode node = currentNode.Nodes.Add(element.TagName);

// optional: store a reference to the element that this node
represents
node.Tag = element;

// create the nodes under this node for the elements contained by
the current element
FillTreeViewRecursively(node, element.All);
}
}
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Top