2015-07-22 72 views
-1

我想在網站上獲取列和行中的數據,但是當我獲取數據時,它是垂直的,現在我必須在任何網站的表格中獲取數據辦法?HtmlAgilityPack從表中獲取數據

我有一個表:

<div> 
    <span id="ctl00_panelContent_ctl01_ucThongTinThiTruong_lblErr"></span> 
</div> 
<div> 
    <div id="ctl00_panelContent_ctl01_ucThongTinThiTruong_grdTT" class="RadGrid RadGrid_Office2007 rgMultiHeader" style="height:700px;width:100%;"> 

     <div class="rgHeaderWrapper"><div id="ctl00_panelContent_ctl01_ucThongTinThiTruong_grdTT_GridHeader" class="rgHeaderDiv" style="padding-removed16px;overflow:hidden;"> 

     <table class="rgMasterTable rgClipCells" border="0" id="ctl00_panelContent_ctl01_ucThongTinThiTruong_grdTT_ctl00_Header" style="width:100%;table-layout:fixed;overflow:hidden;empty-cells:show;"> 
      <colgroup> 
       <col style="width:50px" /> 
       <col style="width:70px" /> 
       <col style="width:70px" /> 
       <col style="width:70px;display:none;" /> 
       <col style="width:70px;display:none;" /> 
       <col style="width:70px;display:none;" /> 
       <col style="width:110px" /> 
      </colgroup> 
      <thead> 

這是我的代碼:

var document = webBrowser1.Document; 
var documentAsIHtmlDocument3 = (mshtml.IHTMLDocument3)document.DomDocument; 

var htmlString = documentAsIHtmlDocument3.documentElement.innerHTML; 

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); 
doc.LoadHtml(htmlString); 

// string texts = doc.DocumentNode.SelectSingleNode("//div[@class='inner']/p").InnerText; 
HtmlNodeCollection texts = doc.DocumentNode.SelectNodes("//table[@class='rgMasterTable rgClipCells']"); 
string kq = ""; 

if (texts != null) 
{ 


    foreach (var item in texts) 
    { 
     kq += item.InnerText + Environment.NewLine; 
    } 
} 
richTextBox1.Text = kq; 

} 


} 

此代碼工作正常,但所獲得的數據是1垂直的,我想在網站上的數據,因爲他們做如何從網站

+0

你有鏈接到你正在從中獲取數據的頁面嗎? –

+0

它是內部網站應該有平等的訪問vpn – LongNgo08

+0

你可以提供表格的HTML與一些實際的數據行? –

回答

-1

數據表:

hour  nation  North Central South North Central South System 
1   16 332 7 367 1 298 7 667 1  1 1  560 
2   15 852 7 157 1 477 7 218 1  1 1  560 
3   15 575 6 853 1 411 7 311 1  1 1  560 
4   15 466 6 839 1 458 7 168 1  1 1  560 
5   15 968 6 969 1 608 7 391 0  1 1  560 

數據我從網站

1 
16 332 
7 367 
1 298 
7 667 
1 
1 
1 
&nbsp; 
&nbsp; 
&nbsp; 
560 
2 
15 852 
7 157 
1 477 
7 218 
1 
1 
1 



560 
3 
15 575 
6 853 
1 411 
7 311 
1 
1 
1 



560 
15 466 
6 839 
1 458 
7 168 
1 
1 
1 



560 
0
<tr class="rgRow" id="ctl00_panelContent_ctl01_ucThongTinThiTruong_grdTT_ctl00__0" style="color:Black;font-weight:normal;font-style:normal;"> 
     <td align="center" valign="middle" style="width:50px;">1</td><td align="right" valign="middle" style="width:70px;"> 16 332</td><td align="right" valign="middle" style="width:70px;"> 7 367</td><td align="right" valign="middle" style="width:70px;"> 1 298</td><td align="right" valign="middle" style="width:70px;"> 7 667</td><td align="right" valign="middle" style="width:70px;"> 1</td><td align="right" valign="middle" style="width:70px;"> 1</td><td align="right" valign="middle" style="width:70px;"> 1</td><td align="right" valign="middle" style="width:70px;display:none;">&nbsp;</td><td align="right" valign="middle" style="width:70px;display:none;">&nbsp;</td><td align="right" valign="middle" style="width:70px;display:none;">&nbsp;</td><td align="right" valign="middle" style="width:70px;"> 560</td><td align="left" valign="middle" style="width:110px;white-space:nowrap;">GT5:NHON_TRACH_2</td><td align="left" valign="middle" style="width:110px;white-space:nowrap;">GT5:NHON_TRACH_2</td><td align="left" valign="middle" style="width:110px;white-space:nowrap;">GT5:NHON_TRACH_2</td> 
    </tr><tr class="rgAltRow" id="ctl00_panelContent_ctl01_ucThongTinThiTruong_grdTT_ctl00__1" style="color:Black;font-weight:normal;font-style:normal;"> 
     <td align="center" valign="middle" style="width:50px;">2</td><td align="right" valign="middle" style="width:70px;"><span> 15 852</span><img src="Images/Grid/down.bmp" style="border-width:0px;" /></td><td align="right" valign="middle" style="width:70px;"><span> 7 157</span><img src="Images/Grid/down.bmp" style="border-width:0px;" /></td><td align="right" valign="middle" style="width:70px;"><span> 1 477</span><img src="Images/Grid/up.bmp" style="border-width:0px;" /></td><td align="right" valign="middle" style="width:70px;"><span> 7 218</span><img src="Images/Grid/down.bmp" style="border-width:0px;" /></td><td align="right" valign="middle" style="width:70px;"> 1</td><td align="right" valign="middle" style="width:70px;"> 1</td><td align="right" valign="middle" style="width:70px;"> 1</td><td align="right" valign="middle" style="width:70px;display:none;">&nbsp;</td><td align="right" valign="middle" style="width:70px;display:none;">&nbsp;</td><td align="right" valign="middle" style="width:70px;display:none;">&nbsp;</td><td align="right" valign="middle" style="width:70px;"> 560</td><td align="left" valign="middle" style="width:110px;white-space:nowrap;">GT5:NHON_TRACH_2</td><td align="left" valign="middle" style="width:110px;white-space:nowrap;">GT5:NHON_TRACH_2</td><td align="left" valign="middle" style="width:110px;white-space:nowrap;">GT5:NHON_TRACH_2</td> 
    </tr><tr class="rgRow" id="ctl00_panelContent_ctl01_ucThongTinThiTruong_grdTT_ctl00__2" style="color:Black;font-weight:normal;font-style:normal;"> 
     <td align="center" valign="middle" style="width:50px;">3</td><td align="right" valign="middle" style="width:70px;"><span> 15 575</span><img src="Images/Grid/down.bmp" style="border-width:0px;" /></td><td align="right" valign="middle" style="width:70px;"><span> 6 853</span><img src="Images/Grid/down.bmp" style="border-width:0px;" /></td><td align="right" valign="middle" style="width:70px;"><span> 1 411</span><img src="Images/Grid/down.bmp" style="border-width:0px;" /></td><td align="right" valign="middle" style="width:70px;"><span> 7 311</span><img src="Images/Grid/up.bmp" style="border-width:0px;" /></td><td align="right" valign="middle" style="width:70px;"> 1</td><td align="right" valign="middle" style="width:70px;"> 1</td><td align="right" valign="middle" style="width:70px;"> 1</td><td align="right" valign="middle" style="width:70px;display:none;">&nbsp;</td><td align="right" valign="middle" style="width:70px;display:none;">&nbsp;</td><td align="right" valign="middle" style="width:70px;display:none;">&nbsp;</td><td align="right" valign="middle" style="width:70px;"> 560</td><td align="left" valign="middle" style="width:110px;white-space:nowrap;">GT5:NHON_TRACH_2</td><td align="left" valign="middle" style="width:110px;white-space:nowrap;">GT5:NHON_TRACH_2</td><td align="left" valign="middle" style="width:110px;white-space:nowrap;">GT5:NHON_TRACH_2</td> 
+0

你應該添加你的更新作爲編輯原始問題,而不是答案。 –

1

得到後你得到的表

HtmlNodeCollection texts = doc.DocumentNode.SelectNodes("//table[@class='rgMasterTable rgClipCells']"); 

你可以得到這樣

var rows = texts.Descendants("tr").ToList(); 

各行這將給名單表中的每一行。從那裏,你可以通過子節點進行迭代,並得到這樣

List<List<string>> rowValues = new List<List<string>>(); 
foreach (var row in rows) 
{ 
    List<string> currentRowValues = new List<string>(); 
    foreach (var column in row.ChildNodes) 
    { 
     currentRowValues.Add(column.InnerText); 
    } 
    rowValues.Add(currentRowValues); 
} 

rowValues他們的價值觀是現在每行表示爲一個列表,其中列表中的元素是行中單元格的值的列表。