如何c# 用WebBroswers 获取网页Table的一个值
<TR>
<TD bgColor="lemonchiffon" colSpan="8">
<TD style="WIDTH: 70px" bgColor="#ffffff"><FONT face="宋体">客户编号:</FONT></TD>
<TD bgColor="#ffffff"><input name="txtcustomerpk" type="text" value="YTBTS20090629165209956810802428455924" readonly="readonly" id="txtcustomerpk" class="biankuang2" style="width:100%;" /></TD>
<table>
代码如上 怎么利用控件获取到value="YTBTS20090629165209956810802428455924"
里的值并把它赋给text控件框中
谢谢啊 急~
有完全的代码可以贴上来不? 展开
新建一个windows Form的项目
在上面拖两个text box,两个按钮,一个textbox命名为txtURL,按钮命名为btnURL
另起一行,textbox命名为txtData,按钮命名为btnGetValue
然后要在项目中添加Microsoft.mshtml引用
分别为两个按钮写事件:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using mshtml;
namespace GetHTMLElementValue
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnURL_Click(object sender, EventArgs e)
{
OpenFileDialog ofdHtmlFile = new OpenFileDialog();
ofdHtmlFile.Multiselect = false;
ofdHtmlFile.Filter = "HTML Files (*.html)|*.html|All Files (*.*)|*.*";
if (ofdHtmlFile.ShowDialog() == DialogResult.OK)
{
txtURL.Text = ofdHtmlFile.FileName;
}
}
private void btnGetValue_Click(object sender, EventArgs e)
{
WebBrowser wb = new WebBrowser();
wb.Navigate(txtURL.Text);
HtmlDocument hd = wb.Document;
HtmlElementCollection heInput = hd.GetElementsByTagName("TD");
foreach (HtmlElement he in heInput)
{
if (he.Name == "txtcustomerpk")
{
txtData.Text = he.InnerText;
}
}
}
}
}
在ebbrowers 中也有GetElementById()方法,
直接根据ID获取到table,然后去其中的Innerhtml即可。
参考代码如下:
public ArrayList table()
{
ArrayList al = new ArrayList();
// StringBuilder sb = new StringBuilder("你的字符串");
using (StreamReader sr = new StreamReader(@"E:\Documents and Settings\Administrator\My Documents\Visual Studio 2008\Projects\txtReader\txtReader\html.htm"))
//这个替换成读出的StringBuild,一行行读出,是一样的。
{
string input;
while ((input=sr.ReadLine()) != null)
{
Regex r1 = new Regex("<td style='' align=\"center\">.*? ");
if (r1.IsMatch(input))
{
al.Add(r1.Match(input).Value);
}
}
sr.Close();
}
return al;//返回的结果
}
txtcustomerpk.text = txtcustomerpk.value.Tostring();