2010-06-29 85 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