hercool
پنج شنبه 03 مرداد 1392, 15:40 عصر
سلام خدمت دوستان
من دارم سعی می کنم اطلاعات بین رو تگ span رو بکشم بیرون اما هر کاری می کنم نمیشه نمونه میزنم ممنون میمش راهنماییم کنید
نمونه کد برای واکشی اطلاعات
<div id="divPortfo" style="overflow: auto; width: 970px; height: 550px;">
<table id="Table26" style="border-top-width: 1px; border-left-width: 1px; border-left-color: dimgray; border-bottom-width: 1px; border-bottom-color: dimgray; width: 2000px; border-top-color: dimgray; border-right-width: 1px; border-right-color: dimgray" border="0" cellpadding="0" cellspacing="0">
<tbody><tr>
<td colspan="2" rowspan="1" style="width: 470px" height="18">
<span id="Label100" class="label" style="display:inline-block;color:Navy;width:100%;">صورت وضعیت </span>
</td>
<td style="width: 90px" height="18" align="right">
<input name="txbPortfoCompanyRef" id="txbPortfoCompanyRef" readonly="readOnly" style="width: 4px; height: 16px" type="hidden"><input name="txbCurrentYearSerial" id="txbCurrentYearSerial" readonly="readOnly" style="width: 4px; height: 16px" type="hidden"><input name="txbPastYearSerial" id="txbPastYearSerial" readonly="readOnly" style="width: 4px; height: 16px" type="hidden">
</td>
</tr>
<tr>
<td id="tdDescribtion" rowspan="2" style="border-right: #647dbc 1px solid; border-top: #647dbc 1px solid; border-left: #647dbc 1px solid; color: #333399; border-bottom: #647dbc 1px solid; background-color: #afbad8" align="center">شرح
</td>
<td colspan="2" style="border-top: #647dbc 1px solid; border-left: #647dbc 1px solid; color: #333399; height: 15px; background-color: #afbad8; border-bottom-width: 1px; border-bottom-color: #647dbc; border-right-width: 1px; border-right-color: #647dbc;" align="center">
<span id="lblPortfoPast" class="label">تاریخ 1391/12/30</span>
</td>
<td colspan="2" style="border-top: #647dbc 1px solid; border-left: #647dbc 1px solid; color: #333399; height: 15px; background-color: #afbad8; border-bottom-width: 1px; border-bottom-color: #647dbc; border-right-width: 1px; border-right-color: #647dbc;" align="center">
<span id="lblPortfoCurr" class="label">سود دهی به 1392/12/29</span>
</td>
<td rowspan="2" style="border-top: #647dbc 1px solid; border-left: #647dbc 1px solid; width: 5%; color: #333399; border-bottom: #647dbc 1px solid; background-color: #afbad8; border-right-width: 1px; border-right-color: #647dbc" align="center">
<span id="lblPortfoCurrPeriod" class="label">وسود اصلی 1392/03/31</span>
</td>
</tr>حالا کدی که من نوشتم اینه
private void button1_Click(object sender, EventArgs e)
{
box.Text = webBrowser1.DocumentText;
Regex regx = new Regex(@"<div(.*?)id=[""']divPortfo[""'](.*?)/>", RegexOptions.Singleline);
MatchCollection mactches = regx.Matches(box.Text);
foreach (Match match in mactches)
{
Regex regxi = new Regex(@"<table(.*?)id=[""'](.*?)[""'](.*?)/>", RegexOptions.Singleline);
mactches = regxi.Matches(match.Value);
foreach (Match matchsname in mactches)
{
regxi = new Regex(@"<td (.*?)>(.*?)</td>", RegexOptions.Singleline);
mactches = regxi.Matches(match.Value);
foreach (Match matchs in mactches)
{
regxi = new Regex(@"<span (.*?)>(.*?)</span>", RegexOptions.Singleline);
mactches = regxi.Matches(match.Value);
foreach (Match matchi in mactches)
{
MessageBox.Show(""+ mactches);
valuee = Regex.Replace(matchi.Value, @">(.*?)</", "");
valuee = Regex.Replace(valuee, @"[""']", "");
listBox1.Items.Add(valuee);
}
}
}
}
}
اما نشد که نشد تعداد td ها بیشتر و span ها هم متقابلا زیاد هست
منتظر راهنماییتون هستم
من دارم سعی می کنم اطلاعات بین رو تگ span رو بکشم بیرون اما هر کاری می کنم نمیشه نمونه میزنم ممنون میمش راهنماییم کنید
نمونه کد برای واکشی اطلاعات
<div id="divPortfo" style="overflow: auto; width: 970px; height: 550px;">
<table id="Table26" style="border-top-width: 1px; border-left-width: 1px; border-left-color: dimgray; border-bottom-width: 1px; border-bottom-color: dimgray; width: 2000px; border-top-color: dimgray; border-right-width: 1px; border-right-color: dimgray" border="0" cellpadding="0" cellspacing="0">
<tbody><tr>
<td colspan="2" rowspan="1" style="width: 470px" height="18">
<span id="Label100" class="label" style="display:inline-block;color:Navy;width:100%;">صورت وضعیت </span>
</td>
<td style="width: 90px" height="18" align="right">
<input name="txbPortfoCompanyRef" id="txbPortfoCompanyRef" readonly="readOnly" style="width: 4px; height: 16px" type="hidden"><input name="txbCurrentYearSerial" id="txbCurrentYearSerial" readonly="readOnly" style="width: 4px; height: 16px" type="hidden"><input name="txbPastYearSerial" id="txbPastYearSerial" readonly="readOnly" style="width: 4px; height: 16px" type="hidden">
</td>
</tr>
<tr>
<td id="tdDescribtion" rowspan="2" style="border-right: #647dbc 1px solid; border-top: #647dbc 1px solid; border-left: #647dbc 1px solid; color: #333399; border-bottom: #647dbc 1px solid; background-color: #afbad8" align="center">شرح
</td>
<td colspan="2" style="border-top: #647dbc 1px solid; border-left: #647dbc 1px solid; color: #333399; height: 15px; background-color: #afbad8; border-bottom-width: 1px; border-bottom-color: #647dbc; border-right-width: 1px; border-right-color: #647dbc;" align="center">
<span id="lblPortfoPast" class="label">تاریخ 1391/12/30</span>
</td>
<td colspan="2" style="border-top: #647dbc 1px solid; border-left: #647dbc 1px solid; color: #333399; height: 15px; background-color: #afbad8; border-bottom-width: 1px; border-bottom-color: #647dbc; border-right-width: 1px; border-right-color: #647dbc;" align="center">
<span id="lblPortfoCurr" class="label">سود دهی به 1392/12/29</span>
</td>
<td rowspan="2" style="border-top: #647dbc 1px solid; border-left: #647dbc 1px solid; width: 5%; color: #333399; border-bottom: #647dbc 1px solid; background-color: #afbad8; border-right-width: 1px; border-right-color: #647dbc" align="center">
<span id="lblPortfoCurrPeriod" class="label">وسود اصلی 1392/03/31</span>
</td>
</tr>حالا کدی که من نوشتم اینه
private void button1_Click(object sender, EventArgs e)
{
box.Text = webBrowser1.DocumentText;
Regex regx = new Regex(@"<div(.*?)id=[""']divPortfo[""'](.*?)/>", RegexOptions.Singleline);
MatchCollection mactches = regx.Matches(box.Text);
foreach (Match match in mactches)
{
Regex regxi = new Regex(@"<table(.*?)id=[""'](.*?)[""'](.*?)/>", RegexOptions.Singleline);
mactches = regxi.Matches(match.Value);
foreach (Match matchsname in mactches)
{
regxi = new Regex(@"<td (.*?)>(.*?)</td>", RegexOptions.Singleline);
mactches = regxi.Matches(match.Value);
foreach (Match matchs in mactches)
{
regxi = new Regex(@"<span (.*?)>(.*?)</span>", RegexOptions.Singleline);
mactches = regxi.Matches(match.Value);
foreach (Match matchi in mactches)
{
MessageBox.Show(""+ mactches);
valuee = Regex.Replace(matchi.Value, @">(.*?)</", "");
valuee = Regex.Replace(valuee, @"[""']", "");
listBox1.Items.Add(valuee);
}
}
}
}
}
اما نشد که نشد تعداد td ها بیشتر و span ها هم متقابلا زیاد هست
منتظر راهنماییتون هستم