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 :

[VB.Net] Comment utiliser du script xml ? [Débutant(e)]


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 50
    Points : 29
    Points
    29
    Par défaut [VB.Net] Comment utiliser du script xml ?
    Bonjour,
    je me retrouve à travailler sur du vb.net que je ne connais pas du tout. J'ai une application qui ne fonctionne pas et pour essayer de comprendre pourquoi je dois faire un petit programme test. Celui ci a pour but d'aller chercher des informations dans un petit script xml et de les afficher par la suite en console par exemple.
    J'ai essayé de récupérer le programme d'origine et de l'épurer mais je tombe sur une erreur fréquente:

    "Une exception non gérée du type 'System.NullReferenceException' s'est produite dans AdvitiumGPN.exe
    Informations supplémentaires*: La référence d'objet n'est pas définie à une instance d'un objet."

    cette erreur apparait sur cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "GPNpartSymbol = UCase(GPNPartElement.getAttribute("symbol"))"
    Voila le code source du fichier vb.net

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
     
    Module TestModule_V0_0
     
        Dim gLogFile
     
        Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
     
        Sub writeLog(ByVal Pin_string, Optional ByVal NeedCarriageReturn = True)
            gLogFile.Write(Format(Now, "dd-MMM-yyyy HH:mm:ss") & " | " & Pin_string)
            If NeedCarriageReturn Then gLogFile.writeLine()
     
     
            Console.Write(Format(Now, "dd-MMM-yyyy HH:mm:ss") & " | " & Pin_string)
            If NeedCarriageReturn Then Console.WriteLine()
     
        End Sub
     
        Public Sub Main()
     
            Dim currentDir As String
            Dim strXML As String
            Dim partId As String
     
            Dim GPNpartPrefix
            Dim GPNpartIdent
            Dim GPNpartSymbol
            Dim GPNDOM As MSXML2.DOMDocument40
            Dim partsDOM As MSXML2.DOMDocument40
            Dim partElement As MSXML2.IXMLDOMElement
            Dim propIndiceElement As MSXML2.IXMLDOMElement
            Dim propStatusElement As MSXML2.IXMLDOMElement
            Dim GPNPartElement As MSXML2.IXMLDOMElement
            currentDir = "D:\Datas\eharrault\TEST_DIR\Interface\fromGPN"
     
     
            GPNDOM = New MSXML2.DOMDocument40
            GPNDOM.load(currentDir)
     
            GPNPartElement = GPNDOM.selectSingleNode("PART")
     
            GPNpartSymbol = UCase(GPNPartElement.getAttribute("symbol"))
     
            strXML = "<Part GUID=""OTI;OT01_PARTS;" & partId & """ PartDefGUID=""OTD;OT01_PARTS"">"
            strXML = strXML & "<Props><Prop InternalName=""PREFIXE"" Value=""" & GPNpartPrefix & """/>"
            strXML = strXML & "<Prop InternalName=""IDENT"" Value=""" & GPNpartIdent & """/>"
            strXML = strXML & "<Prop InternalName=""INDICE"" Value=""AA""/>"
            strXML = strXML & "<Prop InternalName=""LABEL"" Value=""" & GPNPartElement.getAttribute("description1") & """/>"
            strXML = strXML & "<Prop InternalName=""LABEL2"" Value=""" & GPNPartElement.getAttribute("description2") & """/>"
            strXML = strXML & "<Prop InternalName=""ISLAST"" Value=""TRUE""/>"
            strXML = strXML & "<Prop InternalName=""EDITNB"" Value=""1""/>"
            strXML = strXML & "<Prop InternalName=""STATE"" Value=""Development""/>"
            strXML = strXML & "<Prop InternalName=""UNIT_MECA"" Value=""" & UCase(GPNPartElement.getAttribute("unit")) & """/>"
            strXML = strXML & "<Prop InternalName=""HASOFS"" Value=""FALSE""/>"
     
        End Sub
     
    End Module
    et voila celui du script xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <PART symbol="A200485" description1="PCB ACE4000 GPRS"
    description2="MBUS PI SMT Parts" classId="AAB"
    classDescription="PCB" unit="UN"
    creator="garazas">
    <ATTRIBUTE name="DESCRIPTION_1" value="MBUS char(38) PI" unit=""/>
    <ATTRIBUTE name="DESCRIPTION_2" value="SMT Parts" unit=""/>
    </PART>
    merci de bien vouloir m'aider je me sens un peu perdu dans ce langage. Si quelqu'un pouvait m'aider à résoudre ce petit programme ce serait très sympathique

    merci beaucoup

  2. #2
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 113
    Points : 118
    Points
    118
    Par défaut
    Ce qui est bcp plus simple c est de déclaré un objet de type DataSet.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    Dim Ds as new DataSet
    ds.readXml("monfichier.xml")
    par cette méthode tu recupères le contenu de ton fichier XML dans une table ce qui bcp plus pratique.

    si tu ne veux pas utiliser un DataSet, voici un bout de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Dim Doc As New XmlDocument
    Doc.Load("temp2.xml")
    Dim Root As XmlElement = Doc.DocumentElement
    Dim myNodes As XmlNodeList = Doc.SelectNodes("NewDataSet/Table") 'Chemin XPATH
     
    Dim noeud, noeudEnf As XmlNode
     
    For Each noeud In myNodes
          For Each noeudEnf In noeud.ChildNodes
                      MsgBox(noeudEnf.LocalName + " : " + noeudEnf.InnerText)
          Next
    Next

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2002
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 27
    Points : 24
    Points
    24
    Par défaut
    manifestement ton object "GNPartElement" est à Nothing.
    ma première idée serait de vérifie si l'object GPNDOM contient ton xml après le load

    ton chemin("D:\Datas\eharrault\TEST_DIR\Interface\fromGPN") ne contient pas l'extension .xml(en même temps je suis pas sur que se soit obliger de le mettre)

    Autre chose mais qui n'a pas de rapport je pense avec ton erreur
    est que les trois variables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
           Dim GPNpartPrefix
            Dim GPNpartIdent
            Dim GPNpartSymbol
    ne sont pas typés(c'est à éviter)

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 50
    Points : 29
    Points
    29
    Par défaut re.
    desole mais j'aiabandonnée ce bout de code et j'ai codé moi meme un programme de test merci pour vos reponses

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

Discussions similaires

  1. [VB.NET] Comment utiliser un membre Protected ?
    Par Aspic dans le forum VB.NET
    Réponses: 3
    Dernier message: 02/03/2006, 13h42
  2. [Outils][VB.Net] Comment utiliser CrystalReport ?
    Par jonardcy dans le forum SDK
    Réponses: 1
    Dernier message: 20/02/2006, 19h29
  3. Réponses: 11
    Dernier message: 15/02/2006, 14h45
  4. [CF][PPC/VB.NET] Comment utiliser les Socket avec Pocket PC ?
    Par joefou dans le forum Windows Mobile
    Réponses: 5
    Dernier message: 17/05/2005, 14h24
  5. [VB.NET] Comment utiliser VScrollBar verticale
    Par stephane93fr dans le forum Windows Forms
    Réponses: 5
    Dernier message: 28/04/2005, 14h00

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