2010-06-29 69 views
0

每當我通過HtmlElement.Id將Id分配給某些元素,然後閱讀WebBrowser.DocumentText屬性時,元素的Id沒有分配給它的Id。在我看來,DocumentText是IExplorer對網頁的「解釋」,放棄了與頁面的視覺方面無關的所有內容。我嘗試通過HtmlElement.Id獲取Id,而Id是我分配的Id,但我需要的是找到一種方法將HtmlDocument(.net)映射到HtmlAgilityPack.HtmlDocument,因此我想分配一個唯一的Id到每一個元素,然後每次我想訪問一個特定的元素時,用HtmlAgilityPack讀取DocumentText,然後在兩側讀取GetElementById。但是由於我使用DocumentText將Html代碼提供給HtmlAgilityPack,HtmlAgilityPack沒有獲得唯一的Id。 我需要從一個映射到另一個的原因是因爲我創建了一個Web Scrapper,它將根據用戶的選擇更新網頁的視覺方面(突出顯示內容等),但我需要保留原始html的副本做實際的報廢,否則報廢將由我對html所做的更改搞亂。有什麼建議麼?WebBrowser不更新DocumentText?

回答

0

也許你需要等待一段時間才能通過...從MSDN上WebBrowser.DocumentText:

「如果你設置該屬性的值,然後立即再次進行檢索,檢索到的值可能會有所不同如果WebBrowser控件沒有時間加載新內容,則設置的值會大於「。

也許這也適用於如果您設置元素的ID,然後立即讀取DocumentText屬性?

+0

嗯,我試圖與睡眠,但生病現在再試一次,讓你知道。將等待更長時間,現在以某種方式不會暫停線程。 – Juan 2010-06-29 17:55:23

+0

不起作用。屬性'HtmlElement.OutterHtml'和'HtmlElement.Id'給了我正確的Id,但不是'DocumentText'。 :( – Juan 2010-06-29 18:06:00