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 :

XML sous VB6


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Par défaut XML sous VB6
    bonjour,

    apres recherche sur le site, j'ai decidé de passer par xml pour le parametrage de mon appli (a la place des INI)
    je connais tres peu le XML mais d'apres ce que j'ai compris il ne peut y avoir qu'un noeud racine au fichier... j'ai donc decidé de creer mon fichier xml comme suit:
    Code xml : 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
    <DONNEES>
    <INFO>
    <nomprog>....</nomprog>
    <language>...</language>
    </INFO>
    <PARAMETRAGE>
    <parametre nom=.....>
    <shortname>...</shortname>
    <code>...</code>
    </parametre>
    <parametre nom=.....>
    <shortname>...</shortname>
    <code>...</code>
    </parametre>
    </PARAMETRAGE>
    </DONNES>

    Si j'ai bien comprix le xml la structure du fichier doit etre bonne. Mon soucis vient de la creation de ce "squelette" sous VB6, je m'emmele le pinceau. Si quelqu'un peut m'eclairer sur la creation des noeuds xml, je suis preneur.
    G du mal avec les .createelement, .selectedsinglenode ect..

    merci de votre aide

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur VB6 et tout neuf en .Net
    Inscrit en
    Avril 2005
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VB6 et tout neuf en .Net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 377
    Par défaut
    Citation Envoyé par waspy59 Voir le message
    bonjour,
    G du mal avec les .createelement, .selectedsinglenode ect..
    Bonjour,

    Soit plus précis.
    Montre nous ton code, indique nous tes messages d'erreur, explique nous ce que tu veux faire, ...

    Ensuite nous pourrons peut-être d'aider.

    Pour l'instant je pourrais juste te conseiller de regarder s'il existe des tutoriels sur le XML ou DOM.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Par défaut
    merci de repondre à mon message,

    bon voici ce que j'ai fait:
    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
     
    Dim xRacine As IXMLDOMElement
    Dim xssRacine As IXMLDOMElement
    Dim xparametre As IXMLDOMElement
    Dim xelements As IXMLDOMElement
     
    Set xml = Nothing
    Set xRacine = xml.createElement("DONNEES")
    xml.appendChild xRacine
     
    Set xRacine = xml.selectSingleNode("DONNEES")
    Set xssRacine = xml.createElement("INFO")
    xRacine.appendChild xssRacine
     
    Set xssRacine = xml.selectSingleNode("INFO")
    Set xparametre = xml.createElement("nomProg")
        xparametre.Text = "ProjetCB"
        xssRacine.appendChild xparametre
    Set xparametre = xml.createElement("language")
        xparametre.Text = "french"
        xssRacine.appendChild xparametre
    Set xparametre = xml.createElement("version")
        xparametre.Text = "1.00"
        xssRacine.appendChild xparametre
    Set xparametre = xml.createElement("Auteur1")
        xparametre.Text = "wwww"
        xssRacine.appendChild xparametre
    Set xparametre = xml.createElement("Auteur2")
        xparametre.Text = "xxxxx"
        xssRacine.appendChild xparametre
     
    Set xRacine = xml.selectSingleNode("DONNEES")
    Set xssRacine = xml.createElement("PARAMETRAGE")
    xRacine.appendChild xssRacine
    j'obtient le fichier suivant:

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0"?>
    <DONNEES>
    <INFO/>
    <nomProg>ProjetCB</nomProg>
    <language>french</language>
    <version>1.00</version>
    <Auteur1>wwww</Auteur1>
    <Auteur2>xxxxxx</Auteur2>
    <PARAMETRAGE/>
    </DONNEES>

    Alors que je veux:
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0"?>
    <DONNEES>
        <INFO>
            <nomProg>ProjetCB</nomProg>
            <language>french</language>
            <version>1.00</version>
            <Auteur1>wwww</Auteur1>
            <Auteur2>xxxxxx</Auteur2>
        </INFO>
        <PARAMETRAGE></PARAMETRAGE>
    </DONNEES>

    d'ou vient le probleme?

    merci de votre aide

  4. #4
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Je ne sais pas si ça t'aidera, mais à tout hasard, il y a le tutoriel de notre amie Khany sur VB6 et le format XML.

    Bonne lecture! (si c'est pas déjà fait...)

    zaza

  5. #5
    Membre chevronné
    Homme Profil pro
    Développeur VB6 et tout neuf en .Net
    Inscrit en
    Avril 2005
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VB6 et tout neuf en .Net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 377
    Par défaut
    Essai ce code :
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    Option Explicit
     
    Private mDom As DOMDocument40
     
    Private Sub Form_Load()
      Dim Info As IXMLDOMElement
      Dim Root As IXMLDOMElement
     
      Set mDom = New MSXML2.DOMDocument40
      mDom.appendChild mDom.createProcessingInstruction("xml", "version='1.0' encoding='UTF-8'")
     
      Set Root = AjouterElement("DONNEES", mDom)
      Set Info = AjouterElement("INFO", Root)
     
      AjouterElement("nomProg", Info).Text = "ProjectCB"
      AjouterElement("language", Info).Text = "french"
      AjouterElement("version", Info).Text = "1.00"
      AjouterElement("Auteur1", Info).Text = "wwww"
      AjouterElement("Auteur2", Info).Text = "xxxx"
     
      AjouterElement "PARAMETRAGE", Root
     
      Debug.Print IndentXML(mDom.Xml)
     
    End Sub
     
    Public Function AjouterElement(ByVal Name As String, ByRef ElementParent As IXMLDOMNode, Optional ByRef InsertBefore As IXMLDOMNode = Nothing) As IXMLDOMElement
      'Ajouter un élément dans le document DOM
     
      Set AjouterElement = mDom.createNode(NODE_ELEMENT, Name, "")
      ElementParent.InsertBefore AjouterElement, InsertBefore
    End Function
     
    Public Function IndentXML(ByVal Xml As String) As String
      'Indente le XML qui sinon est sur une seule ligne
     
      Dim NbIndent                      As Integer
      Dim Pos                           As Long
     
      NbIndent = 0
      Pos = InStr(Xml, "><")
      Do While Pos <> 0
        If Mid(Xml, Pos - 1, 1) = "/" Then
          If Mid(Xml, Pos + 2, 1) = "/" Then
            '/></
            NbIndent = NbIndent - 1
          Else
            '/><
            NbIndent = NbIndent
          End If
        Else
          If Mid(Xml, Pos + 2, 1) = "/" Then
            '></
            NbIndent = NbIndent - 1
          Else
            '><
     
            'Regarde si le node est une basile de fin ex: "</NodeInfo>"
            Pos = InStrRev(Xml, "<", Pos)
            Select Case Mid(Xml, Pos + 1, 1)
            Case "/", "!"
              '</NodeInfo><Created>
              'ou
              '<!-- C'est un commentaire
              NbIndent = NbIndent
            Case Else
              '<AuditPool><Created>
              NbIndent = NbIndent + 1
            End Select
          End If
        End If
        Xml = Replace(Xml, "><", ">" & vbCrLf & String(NbIndent, vbTab) & "<", , 1)
     
        Pos = InStr(Xml, "><")
      Loop
      IndentXML = Xml
    End Function
    Résultat du Debug.Print
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0"?>
    <DONNEES>
      <INFO>
        <nomProg>ProjectCB</nomProg>
        <language>french</language>
        <version>1.00</version>
        <Auteur1>wwww</Auteur1>
        <Auteur2>xxxx</Auteur2>
      </INFO>
      <PARAMETRAGE/>
    </DONNEES>

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Par défaut
    re,

    merci pour vos reponses rapides:

    Zazaraigné >> oui j'ai bien lu et relu le tuto de khany, c'est grace a celui ci que j'ai fait mon bout de code.

    Najdar>> effectivement ta solution fonctionne, mais ce que j'aimerai comprendre c'est ce qu'il ne va pas dans mon code... pourquoi le noeud <INFO> est erroné ect...

    en gros pourquoi ce que j'ai mis ne fonctionne pas... j'ai portant suivi a la lettre le tuto

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

Discussions similaires

  1. Problème éléments vides dans du XML sous VB6
    Par matteli dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 21/11/2007, 16h01
  2. XML sous VB6
    Par matteli dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/11/2007, 13h47
  3. [vb6] Modifier structure table Access sous VB6
    Par jlvalentin dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 25/03/2004, 17h45
  4. [xml]manipuler des données xml sous Oracle9i
    Par crazy dans le forum SQL
    Réponses: 7
    Dernier message: 28/02/2004, 11h40
  5. XSL pour visualiser arbre XML sous forme de tableau en HTML
    Par mattmat dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 28/03/2003, 10h55

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