2009-07-15 9 views
0

J'utilise l'espace de noms mshtml pour accéder aux éléments DOM renvoyés par un objet Navigateur COM.Accès aux éléments DOM en C#

Mon code est à peu près comme suit

object missing = Type.Missing; 
ie.Navigate("http://website.com", ref missing, ref missing, ref missing, ref missing); 
mshtml.HTMLDocument theDoc = (mshtml.HTMLDocument)ie.Document; 
mshtml.HTMLDivElement myDiv = (mshtml.HTMLDivElement)theDoc.getElementById("divID"); 

Maintenant, jusqu'à ce point, myDiv est un DivElement. Mais, la page Web elle-même contient plus de DIV sous "divID". C'est-à-dire qu'il y a beaucoup de couches de DIVs imbriquées.

Mais l'objet myDIV est de type mshtml.HTMLDivElement, ce qui me permet de récupérer plus de DIVS que ses enfants.

Que puis-je faire dans ce cas? En supposant que j'ai plus de DIV je dois récupérer d'une manière imbriquée?

+0

Voulez-vous dire que tous vos div sur la page ont le même id que "divID" –

Répondre

0

Vous l'avez peut-être déjà compris, mais juste au cas où ... Vous devriez pouvoir lancer l'objet myDiv vers l'interface IHTMLElement et utiliser sa propriété 'children' pour itérer les enfants de myDiv.

Questions connexes