2014-01-09 66 views
0

我正在閱讀從WPF應用程序加載到WebBrowser控件中的頁面。從表單元檢索信息

在這個頁面中有一張數據表,我需要捕獲它並且我正在使用MSHTML。

我可以檢索表,我可以檢索表中的行,我只是不能從行中檢索單元格。我總是得到一個NullReferenceException

這是我現在有:

foreach (var a in ((wbSocial.Document as HTMLDocument).getElementById("j_idt29:gridDadosTrabalhador").children as IHTMLElementCollection)) 
    foreach (var b in (a as HTMLTableSection).rows) 
     if (((b as HTMLTableRow).cells as HTMLTableCell) == null || ((b as HTMLTableRow).cells as HTMLTableCell).nodeName.ToUpper() == "TH") 
      continue; 

當我調試HTMLTableRow我看到有該HTMLTableRow內7元,但如果我投給HTMLTableCell它給我的NullReferenceException

+1

我編輯了自己的冠軍。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –

回答

2

好的,我設法自己解決它。我真的認爲這是遠離我的能力的東西。使它工作後,我真的發現自己很愚蠢。

這是我做過什麼:

foreach (var a in ((wbSocial.Document as HTMLDocument).getElementById("j_idt29:gridDadosTrabalhador").children as IHTMLElementCollection)) 
        foreach (var b in (a as HTMLTableSection).rows) 
        { 
         if ((b as HTMLTableRow).rowIndex == 0) { continue; } 
         else 
         { 
          foreach (var c in (b as HTMLTableRow).cells) 
+0

爲了修復它,你需要改變什麼? –

+0

對不起,花了這麼長的時間來回答。 顯然'HTMLTableRow.cells'返回一個'HTMLElementCollection',每個'HTMLElement'可以被轉換成一個'HTMLTableCell'。這只是我的缺乏關注。 –