Web浏览器控件:获取元素值并将其存储到变量中

时间:2010-03-26 23:43:16

标签: c# winforms webbrowser-control

Winform:网络浏览器控件

网页浏览器在html表格中显示以下内容。

[Element]   [Value]
Name        John Smith
Email       jsmith@hotmail.com

对于上面的示例,html代码可能看起来像这样

<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">jsmith@hotmail.com</span></td>
</tr>
    </tr>
    </tbody>
</table>

我想获取元素值,即标签右侧的值。

这样做的最佳方式是什么?

(我可以使用DOM还是需要使用正则表达式对html代码进行分阶段?)

1 个答案:

答案 0 :(得分:3)

实现这一目标的方法不止一种。

例如,这对你有用吗?

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"">jsmith@hotmail.com</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);
        }
    }
}