{la référence d'objet n'est pas définie à une instance d'objet

cs_NOLISPU Messages postés 11 Date d'inscription dimanche 5 octobre 2008 Statut Membre Dernière intervention 21 décembre 2010 - 3 janv. 2009 à 16:09
cs_NOLISPU Messages postés 11 Date d'inscription dimanche 5 octobre 2008 Statut Membre Dernière intervention 21 décembre 2010 - 4 janv. 2009 à 15:57
Bonjour à tous,

Mon problème en deux mots :

J'écris en ce moment une petite application qui analyse une page Html et crée dans une treeview un arbre des éléments qui la composent.
Pour cela j'utilise  un control  (WebBrowser) qui me permet de retrouver une page (HtmlDocument). Lorsque la page est chargée (Document_Completed) je balaye suivant un algorithme déterminé chacun des éléments (HtmlElement).
Je navigue d'élément en élément en utilisant les références FirstChild, NextSibling, Parent de ces Elements.

Avant d'utiliser une référence, je teste si elle est initialisée ex:
If Not Element.NextSibling is Nothing then
    statment 1
    Statment 2
    EndIf

Tout cela est très classique mais je ne comprend pas pourquoi, si la référence n'est pas initialisée :
(espion Element.NextSibling signalant ; {la référence d'objet n'est pas définie à une instance d'objet})
le test "If Not Element.NextSibling is Nothing then" ne marche pas. Statment 1, Statment 2 sont exécutés alors qu'ils ne le devraient pas ?

Je suis en VB 2008 EE. L'erreur doit être grossière !!! mais je suis dans le cirage. Quelqu'un aurait-il une idée sur la question ?

  Merci à tous pour votre aide ...

4 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
3 janv. 2009 à 16:16
Peut-etre avec des parenthèses :

If Not (Element.NextSibling is Nothing) Then

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
0
cs_NOLISPU Messages postés 11 Date d'inscription dimanche 5 octobre 2008 Statut Membre Dernière intervention 21 décembre 2010
3 janv. 2009 à 16:36
Merci Casy pour ton aide, mais la correction proposée ne marche pas ....
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
3 janv. 2009 à 17:35
Bonjour,

Je suppose donc que c'est "Element" qui est Nothing, donc :
If (Element isnot nothing) andalso (Element.NextSibling isnot Nothing) Then

0
cs_NOLISPU Messages postés 11 Date d'inscription dimanche 5 octobre 2008 Statut Membre Dernière intervention 21 décembre 2010
4 janv. 2009 à 15:57
Bonjour NHenry

Merci pour ta réponse.

J'ai vérifié que lors de l'exécution du test If Not ......, si la référence Elément. était initialisée et pointait sur un élément (HtmlElement) du document, et c'est bien le cas .... Le problème persiste donc .... Je vais tenter de contourner le problème en interceptant (try,  catch, ...) l'erreur . NextSibling = reférence vide, de façon à ne plus lancer dans ce cas statment 1, statment 2  etc.

Mais j'aurais bien aimé élucider le problème du test If Not ... is Nothing qui ne marche pas comme je le pense ....

  Cordialement ....
0
Rejoignez-nous