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.NET Discussion :

Lecture XML vb.net


Sujet :

VB.NET

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 72
    Points : 57
    Points
    57
    Par défaut Lecture XML vb.net
    Bonjour,

    J'ai le fichier XML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?xml version="1.0" encoding="utf-8" ?>
    <Param>
      <Param1>test 123</Param1>
      <Param2>test 456</Param2>
      <Param3>test 789</Param3>
    </Param>
    Voici mon code pour appeler l'élément Param1
    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 XmlDoc As XmlDocument = New XmlDocument()
            XmlDoc.Load(FICHIER_XML)
            Dim element As XmlNodeList
            element = XmlDoc.DocumentElement.GetElementsByTagName("Param")
            Dim noeud As XmlNode
     
            For Each noeud In element
                Dim listeEnf As XmlNodeList = noeud.ChildNodes
                Dim noeudEnf As XmlNode
                For Each noeudEnf In listeEnf
                    If noeudEnf.LocalName = "Param1" Then
                        Dim VAR as string
                        VAR = noeudEnf.InnerText
                    End If
                Next
            Next
    VAR est vide. J'ai trouvé le code sur un article de Selkis.

    Avez-vous une idée pourquoi VAR est vide ?

    Merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    XmlDoc.DocumentElement correspond au noeud racine, c'est à dire "<Param>". Et cet élément n'a pas de sous-éléments "<Param>", donc la variable element contient 0 noeuds...

    Ce code devrait marcher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    		Dim XmlDoc As XmlDocument = New XmlDocument()
    		XmlDoc.Load(FICHIER_XML)
    		Dim element As XmlNodeList
    		Dim noeud As XmlNode = XmlDoc.DocumentElement
     
     
    		Dim listeEnf As XmlNodeList = noeud.ChildNodes
    		Dim noeudEnf As XmlNode
    		For Each noeudEnf In listeEnf
    			If noeudEnf.LocalName = "Param1" Then
    				Dim VAR as string
    				VAR = noeudEnf.InnerText
    			End If
    		Next
    Note qu'il ne sert à rien de boucler sur tous les noeuds "<Param>" : vu que c'est l'élément racine, il ne peut y en avoir qu'un seul.

    D'autre part, ce n'est certainement pas la méthode la plus efficace pour récupérer un noeud particulier... il vaudrait mieux utiliser XPath par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    		Dim XmlDoc As XmlDocument = New XmlDocument()
    		XmlDoc.Load(FICHIER_XML)
     
    		Dim param1 As XmlNode = XmlDoc.SelectSingleNode("/Param/Param1")
    		If param1 IsNot Nothing Then
    		    Dim VAR As String = param1.InnerText
    		End If

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 72
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    		Dim XmlDoc As XmlDocument = New XmlDocument()
    		XmlDoc.Load(FICHIER_XML)
     
    		Dim param1 As XmlNode = XmlDoc.SelectSingleNode("/Param/Param1")
    		If param1 IsNot Nothing Then
    		    Dim VAR As String = param1.InnerText
    		End If
    Ca marche, c'est plus celui que tu m'as suggéré qui va me servir.

    Merci !

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

Discussions similaires

  1. Ecriture Lecture XML en VB.net
    Par megamario dans le forum VB.NET
    Réponses: 13
    Dernier message: 06/07/2009, 15h09
  2. [VB.net]Lecture xml vers dataset : prob avec sous noeuds
    Par Garrett dans le forum Windows Forms
    Réponses: 1
    Dernier message: 25/04/2007, 20h28
  3. [SOAP][XML][C#.NET] Téléchargement de fichiers XML
    Par juniorAl dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 27/06/2005, 09h35
  4. [C#] [WinForms] Lecture XML
    Par stailer dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/10/2004, 14h42
  5. [Débutant] Lecture xml SAX
    Par Ekros dans le forum APIs
    Réponses: 6
    Dernier message: 21/06/2004, 15h14

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