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 :

Parser du xml avec SelectSingleNode


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 148
    Par défaut Parser du xml avec SelectSingleNode
    Bonjour,
    Comme le dit le titre j'ai un soucis pour parser du XML, ma chaîne de caractère contient le document XML :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <Configuration>
                <TemplatePath>images/{0}</TemplatePath>
                <HeightMax>1280</HeightMax>
                <WidthMax>1024</WidthMax>
                <ImgQuality>98</ImgQuality>
                <WeightMax>8</WeightMax>
    </Configuration>

    Pour le parser je fais :

    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    _xmlConfiguration = New XmlDocument
    _xmlConfiguration.LoadXml(_value)
    Me.TemplatePath = _xmlConfiguration.SelectSingleNode("TemplatePath").Value
    Me.MaxFileSize = _xmlConfiguration.SelectSingleNode("MaxFileSize").Value
    Me.ImgQuality = _xmlConfiguration.SelectSingleNode("ImgQuality").Value
    Me.MaxHeight = _xmlConfiguration.SelectSingleNode("MaxHeight").Value
    Me.MaxWidth = _xmlConfiguration.SelectSingleNode("MaxWidth").Value


    _value étant la chaine de caractère contenant le xml, pourquoi lors de l'exécution j'ai : "Object reference not set to an instance of an object" ?

    Si vous avez une idée je suis preneur

    Merci d'avance

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Tes expressions XPath sont incorrectes (syntaxe + recherche d'éléments inexistants dans le XML). Résultat l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _xmlConfiguration.SelectSingleNode("...")
    renvoie null et à ce moment
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _xmlConfiguration.SelectSingleNode("...").Value
    lève une NullReferenceExpcetion, d'où le message d'erreur.

    Ensuite Value c'est bon pour les attributs, pour le contenu texte d'un élément il faut utiliser InnerText.

    Essaye donc ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    _xmlConfiguration = New XmlDocument
    _xmlConfiguration.LoadXml(_value)
    Me.TemplatePath = _xmlConfiguration.SelectSingleNode("/Configuration/TemplatePath").InnerText
    Me.ImgQuality = _xmlConfiguration.SelectSingleNode("/Configuration/ImgQuality").InnerText
    Me.MaxHeight = _xmlConfiguration.SelectSingleNode("/Configuration/HeightMax").InnerText
    Me.MaxWidth = _xmlConfiguration.SelectSingleNode("/Configuration/WidthMax").InnerText
    Sinon, pour faire plus simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    _xmlConfiguration = New XmlDocument
    _xmlConfiguration.LoadXml(_value)
    Me.TemplatePath = _xmlConfiguration("Configuration")("TemplatePath").InnerText
    Me.ImgQuality = _xmlConfiguration("Configuration")("ImgQuality").InnerText
    Me.MaxHeight = _xmlConfiguration("Configuration")("HeightMax").InnerText
    Me.MaxWidth = _xmlConfiguration("Configuration")("WidthMax").InnerText

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 148
    Par défaut
    Bonjour,

    Je vous remercie, vos réponses étaient correctes et cela va me permettre d'avancer dans mon projet.

    Encore merci et bonne journée


    GoT

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

Discussions similaires

  1. Parser du XML avec SelectSingleNode
    Par KoRiGaN44 dans le forum C#
    Réponses: 12
    Dernier message: 26/06/2009, 16h42
  2. [SimpleXML] Parser un XML avec SimpleXML_Load_File
    Par mathieu3392 dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 12/10/2007, 11h11
  3. parser du xml avec java
    Par 080983 dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 30/07/2007, 09h56
  4. [DOM] Erreur parser fichier xml avec caractère spéciaux
    Par turcotm dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 19/06/2006, 09h01
  5. [DOM XML] Comment parser du XML avec une version 4.3 ?
    Par ouioui2000 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 18/10/2005, 15h52

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