2010-06-29 5 views
0

Chaque fois que j'affecte des ID à certains éléments via HtmlElement.Id, puis que vous lisez la propriété WebBrowser.DocumentText, l'ID de l'élément n'a pas l'ID que je lui ai attribué. Il me semble que le DocumentText est l''interprétation' IExplorer de la page web, rejetant tout ce qui n'est pas pertinent pour les aspects visuels de la page. J'ai essayé d'obtenir l'Id via HtmlElement.Id et l'Id était celui que j'ai assigné, mais ce dont j'ai besoin est de trouver un moyen de mapper d'un HtmlDocument (.net) vers un HtmlAgilityPack.HtmlDocument, donc je veux assigner un Id unique Pour chaque élément, lisez le DocumentText avec HtmlAgilityPack puis GetElementById des deux côtés chaque fois que je veux accéder à un élément particulier. Mais puisque j'utilise DocumentText pour donner le code HTML à HtmlAgilityPack, HtmlAgilityPack n'obtient pas les Id uniques. La raison pour laquelle je dois mapper de l'un à l'autre est parce que je crée un Web Scrapper qui mettra à jour les aspects visuels d'une page Web en fonction des sélections faites par l'utilisateur (surligner des choses, etc.), mais je dois garder une copie de l'original html pour faire la mise au rebut réelle, sinon la mise au rebut sera foiré par les changements que je fais au html. Aucune suggestion?WebBrowser ne met pas à jour le DocumentText?

Répondre

0

Peut-être que vous avez besoin d'attendre un certain temps pour passer ... de MSDN sur WebBrowser.DocumentText:

« Si vous définissez la valeur de cette propriété, puis récupérer immédiatement à nouveau, la valeur récupérée peut être différente que la valeur définie si le contrôle WebBrowser n'a pas eu le temps de charger le nouveau contenu. "

Peut-être cela s'applique également à si vous définissez l'ID d'un élément, puis lisez immédiatement la propriété DocumentText?

+0

Eh bien, j'ai essayé avec le sommeil, mais essayez de nouveau malade en ce moment et vous le faire savoir. Attendra ridiculement plus longtemps et maintenant d'une manière qui ne met pas le fil en pause. – Juan

+0

Ne fonctionne pas. Les propriétés 'HtmlElement.OutterHtml' et' HtmlElement.Id' me donnent le bon identifiant, mais pas le 'DocumentText'. :( – Juan

Questions connexes