2012-02-10 1 views
1

Comment effectuer un cast mshtml.IHTMLDivElement à mshtml.HTMLDivElementClass?Comment convertir mshtml.IHTMLDivElement en mshtml.HTMLDivElementClass?

IHTMLElementCollection collection = doc.body.all; 

foreach (var htmlElem in collection) 
{ 
    if (htmlElem is mshtml.IHTMLDivElement) 
    { 
     mshtml.IHTMLDivElement div = htmlElem as mshtml.IHTMLDivElement; 
     if (div != null) 
     { 
      // HTMLDivElementClass divClass = (HTMLDivElementClass)div; ?????????      
     } 
    }    
} 

Je dois accéder à HTMLDivElementClass pour pouvoir en obtenir tous les membres.

enter image description here

+0

Pourquoi avez-vous besoin de faire le casting? Quel est le problème avec votre code commenté? – vcsjones

+0

@vcsjones Parce que je ne peux pas accéder à toutes les propriétés dont j'ai besoin dans HTMLDivElementClass. IHTMLDivElement n'a que 2 propriétés ... Par exemple je dois obtenir l'ID de la DIV et etc ... –

Répondre

1

Votre code presque correct. Je ne suis pas sûr de ce que tu veux.

S'il vous plaît changer votre code comme ci-dessous

mshtml.IHTMLElementCollection collection = (mshtml.IHTMLElementCollection)objDocument.body.all; 

      foreach (var htmlElem in collection) 
      { 
       if (htmlElem is mshtml.IHTMLDivElement) 
       { 
        mshtml.HTMLDivElementClass div = htmlElem as mshtml.HTMLDivElementClass; 
        if (div != null) 
        { 
        //DO YOUR CODE HERE 
        //div.IHTMLElement_id 
        } 
       } 
      } 

Il travaille pour moi et dans « div » objet est du type « HTMLDivElementClass »

Et une autre suggestion si vous voulez tous les DIV tag uniquement à partir de la page, puis utilisez la ligne de code suivante.

mshtml.IHTMLElementCollection collection = (mshtml.IHTMLElementCollection)objDocument.getElementsByName("div"); 

Au lieu de

mshtml.IHTMLElementCollection collection = (mshtml.IHTMLElementCollection)objDocument.body.all; 

Cela supprimera votre condition pour vérifier l'élément est DIV ou non.

J'espère que cette aide vous sera utile.