Элемент управления Webbrowser: получить значение элемента и сохранить его в переменной - PullRequest
1 голос
/ 27 марта 2010

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 Ответ

3 голосов
/ 02 июня 2010

Есть несколько способов сделать это.

Например, будет ли это работать для вас?

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