views:

121

answers:

1

Winform: Web browser Control

The web browser has the following displayed content, within a html table.

[Element]   [Value]
Name        John Smith
Email       [email protected]

For the example above, the html code, might look something like this

<table>
    <tbody>
    <tr>

        <td><label class="label">Name</label></td>
        <td class="normaltext">John Smith</td>
    </tr>
    <tr>    <td><label class="label">Email</label></td>
        <td><span class="normaltext">[email protected]</span></td>
</tr>
    </tr>
    </tbody>
</table>

.

I want to get the element value, the value to the right of the label.

What is the best way to do this?

(Can I use DOM or do I need to phase the html code with a regular expression?) .

+2  A: 

Hi,

there're more than one way to accomplish this.

For instance, will this work for you?

using System.Windows.Forms;

namespace TestWebBrowser
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            webBrowser1.DocumentText = @"<html><body><table>
    <tbody>
    <tr>

        <td><label class=""label"">Name</label></td>
        <td class=""normaltext"">John Smith</td>
    </tr>
    <tr>    <td><label class=""label"">Email</label></td>
        <td><span class=""normaltext"" id=""e1"">[email protected]</span></td>
</tr>
    </tr>
    </tbody>
</table>
</body>
</html>";
        }

        private void button1_Click(object sender, System.EventArgs e)
        {
            HtmlElement e1 = webBrowser1.Document.GetElementById("e1");
            MessageBox.Show(e1.InnerText);
        }
    }
}