IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

[VB6] [XML][DOM] Collection DOMNodeList vide


Sujet :

VB 6 et antérieur

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [VB6] [XML][DOM] Collection DOMNodeList vide
    Bonjour,

    Je suis actuellement en train de developper une DLL en VB qui devra s'occuper de la gestion de fichiers XML. Pour cela il me faut recuperer certains noeuds et en exploiter les valeurs. La Collection renvoyee par la methode selectNodes est vide, comportement somme toute normal lorsqu'aucun noeud ne correspond au critere XPath. Or justement le cote XML du probleme est correct (j'ai verifie l'expression XPath, question posee sur ce forum meme... le fichier XML l'est egalement...) je me demande quel peut etre mon probleme actuel.

    Voici les quelques lignes de codes utilisees reduites au stricte minimum (je vous fais grace des differents tests et du code contextuel au reste de l'application...), j'utilise le parser MSXML v4.0:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Dim i As Integer
    Dim ret() As Integer   'Le tableau a retourner, contiendra les valeurs trouvees
    Dim fichierXML As MSXML2.DOMDocument   'Fichier xml courant charge en memoire
    Dim listeNoeuds As IXMLDOMNodeList  'La liste des noeuds
     
    Set fichierXML = New MSXML2.DOMDocument
    fichierXML.Load(App.Path & "/tmx.xml")
     
    Set listeNoeuds = fichierXML.documentElement.selectNodes("/body/tu[@tuid=""" & tuid & """]/tuv/prop[@type=""x-tuvid""]")
     
    For i = 0 To (listeNoeuds.length - 1)
            'On redimensionne le tableau ret
            ReDim Preserve ret(i + 1)
            'On recupere les valeurs et on les stocke dans ret
            ret(i) = CInt(listeNoeuds.Item(i).Text)
    Next
    Oui oui il n'y a quasiment rien comme code, et pourtant... si l'enervement ressenti etait proportionnel au nombre de lignes, ca se saurait...

    Un grand merci d'avance a ceux qui prendront le temps de me repondre... et aux autres aussi...

    A Bientot...
    Ykh

  2. #2
    Nouveau membre du Club
    Inscrit en
    Juin 2003
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 38
    Points : 38
    Points
    38
    Par défaut
    Salut,
    A mon avis, ce qui cloche un peu c'est ta chaine d'expression Xpath...
    Essaie de la contruire avant dans une variable, et d'afficher la variable pour voir si la chaine est bien correcte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim StrTemp As String
    StrTemp = "/body/tu[@tuid=""" & tuid & """]/tuv/prop[@type=""x-tuvid""]"
    msgBox StrTemp
    Parceque les enchainements de " " ", a mon avis ca peut clocher un peu....

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Salut,

    Merci de ta reponse... J'ai deja essaye... Comme dit plus haut, le XPath est bon, les "" ne sont la que pour la banalisation des " , c'est la meme chose... Le fichier XML aussi... C'est un probleme de VB c'est (presque ) sur... cela fait 2 jours que j'ecume les forums et autres newsgroups a la recherche d'une solution... J'ai vu pas mal de personnes qui avaient le meme genre de probleme... Et si peu de solutions... Meme des codes qui marchaient (en theorie du moins...) ne fonctionnaient pas chez moi... A mon avis cela doit provenir d'une (tres?!) petite subtilite de je ne sais ou (MSXML v4.0?!)... Bref je desespere...

    @+
    Ykh

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juin 2003
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 38
    Points : 38
    Points
    38
    Par défaut
    Oki, mais ce genre de truc, il vaut mieux toujours tester, des fois VB il aime pas trop trop...

    Sinon, il n'y a pas d'objet MSXML2.DOMNodeList?
    Ca pourrait etre a cause de ca aussi...

    Ou alors essaie juste un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set listeNoeuds = fichierXML.documentElement.ChildNodes
    Voir s'il te met bien la liste des Childs de la racine de ton fichier au moins

  5. #5
    Candidat au Club
    Inscrit en
    Janvier 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Oki, j'ai mis un MSXML2.DOMNodeList bien que ca ne devrait pas changer quelque-chose pour VB etant donne qu'il s'agit plus d'une restriction pour lui, en temps normal il devrait trouver les bons tous seuls avec les objets "generiques"... J'avais eut un probleme comme cela avec des DOMDocument40 alors que les DOMDocument (tout court... ) fonctionnent tres bien...

    Je te remercie de ton aide Stoune, je viens de resoudre le probleme... l'erreur est humaine et parfois on fait trop confiance a certains humains... faillibles... mais gentils et devoues a leur passion... (1/4h sentimental... )

    Il s'agissait bien d'un probleme du XPath... le mien commencant par / alors que // convient bien mieux sachant que l'element body n'est pas a la racine... (mais ca il est vrai tu ne pouvais le deviner... ). 2 jours pour un caratere... Erfffff...

    A bientot...
    Ykh

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XML]JSP et XML DOM
    Par lenoil dans le forum Servlets/JSP
    Réponses: 18
    Dernier message: 25/11/2004, 15h44
  2. Réponses: 2
    Dernier message: 05/06/2004, 12h56
  3. [VB6]Valeurs une collection renvoyée par la fonction d'une classe
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 30/03/2004, 12h04
  4. [VB6] Sauvegarder une collection d'objets
    Par Sayagh dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 19/09/2003, 12h58
  5. XML DOM et gros fichiers
    Par Manu_Just dans le forum APIs
    Réponses: 4
    Dernier message: 28/03/2003, 10h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo