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

VBScript Discussion :

Ajouter un Node à un XML existant


Sujet :

VBScript

  1. #1
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2003
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 274
    Points : 372
    Points
    372
    Par défaut
    Bonjour à toutes et à tous,

    J'aimerais pouvoir ajouter un Node à un XML existant.
    J'ai cherché un peu partout sur le net mais je n'arrive pas à concrétiser.

    Ja'i essayé une technique du genre:
    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
    Public Sub CreerDocument()
     
    	Dim xmlDoc, oRacine
     
    	Set xmlDoc = CreateObject("Microsoft.XMLDOM")
        ' Créer et ajouter la racine dans le document
    	' ATTENTION : il ne peut y avoir qu'un seul noeud racine dans un doc XML
    	Set oRacine = xmlDoc.createElement("Racine")
     
        ' Ajouter la racine dans le document
    	xmlDoc.appendChild oRacine
     
    	xmlDoc.save("E:\inventory\New VBS\test.xml")
     
    	Set xmlDoc = Nothing
     
    End Sub
     
    Public Sub AjouterDocument()
     
    	Dim xmlDoc, oElement, oNom, oPrenom, rdr, wrt, oStream
     
    	Set xmlDoc = CreateObject("Microsoft.XMLDOM")
    	xmlDoc.Load("E:\inventory\New VBS\test.xml")
     
    	' Ajouter un élément
    	Set oElement = xmlDoc.selectSingleNode("Racine")  ' positionnement sur la racine
    	Set oElement = xmlDoc.createElement("element1")    ' création d'un fils membre
    	xmlDoc.documentElement.appendChild oElement       ' crée le fils de la racine
     
    	' Ajouter des champs balises
    	Set oNom = xmlDoc.createElement("nom1")
    	oNom.Text = "LENOM1"
    	oElement.appendChild oNom
    	Set oNom = Nothing
     
    	' Indenter le fichier créé
    	set rdr = CreateObject("MSXML2.SAXXMLReader")
    	set wrt = CreateObject("MSXML2.MXXMLWriter")
    	Set oStream = CreateObject("ADODB.STREAM")
    	oStream.Open 'Ouverture objet stream
    	oStream.Charset = "ISO-8859-1"
     
    	wrt.indent = True
    	wrt.encoding = "ISO-8859-1"
    	wrt.output = oStream ' Connexion de l'objet Writer à l'objet Stream
    	Set rdr.contentHandler = wrt
    	Set rdr.errorHandler = wrt
    	rdr.Parse xmlDoc
    	wrt.flush
     
    	' Sauver le fichier créé
    	oStream.SaveToFile "E:\inventory\New VBS\test.xml", 2
     
    	' Détruire les objets
    	Set rdr = Nothing
    	Set wrt = Nothing
    	Set xmlDoc = Nothing
     
    End Sub
    Ensuite, après chaque appel de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Not CheckIsFile ("E:\inventory\New VBS\test.xml") Then CreerDocument
    AjouterDocument
    ' CheckIsFile est une fonction WMI qui me permet de savoir si le fichier existe ou non et renvoie True ou False
    Je change les valeurs pour element1 nom1 et LENOM1 mais rien n'y fait ... Mon but est de bien entedu automatiser le code par la suite...

    Auriez-vous une idée de comment je peux facilement ajouter des nodes dans un xml existant en VBScript ?

    Cordialement,

    En réalité c'est la fonction CheckIsFile qui ne fonctionne pas.
    En effet, elle me retourne toujours False.
    Je cherche la solution et je vous tiens informé ...
    Vous avez la réponse à votre question ? Mettez votre sujet en

    Une personne vous a correctement aidé ? Cliquez sur le

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    1. peux tu donner le code qui se situe avant ton test ?
    2. Si checkIsFile vérifie bien que c'est un fichier, elle te renvois vrais. Si ton test est toujours faux, c'est parce que tu négationnes toujours le résultat avec NOT avant de faire le test si vrai alors sinon
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2003
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 274
    Points : 372
    Points
    372
    Par défaut
    Il s'agissait de ma fonction CheckIsFile qui n'était pas valide.
    Je la'i donc remplacée par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Function CheckIsFile (ByVal fichier)
     
    	CheckIsFile = False
     
    	If fso.fileexists(fichier) Then CheckIsFile = True ' fso étant déclaré public dans l'un de mes autres modules je ne suis pas obligé de le redéclarer
     
    End Function
    Et maintenant tout est en ordre ...

    Salut Ced,

    Je viens de voir ta réponse...
    Merci pour ton aide quand même ...
    Vous avez la réponse à votre question ? Mettez votre sujet en

    Une personne vous a correctement aidé ? Cliquez sur le

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    De rien.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

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

Discussions similaires

  1. ajouter nouveau Node a XML fichier
    Par zidenne dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 18/09/2012, 12h35
  2. [VBA]ajouter nouvelle Node a XML fichier
    Par zidenne dans le forum Général VBA
    Réponses: 3
    Dernier message: 14/09/2012, 17h59
  3. [XML] Ajouter un node et ses enfants dans un fichier xml existant
    Par zoreol dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 23/11/2010, 12h50
  4. [DOM] Ajouter des nouveaux élements depuis un nouveau fichier dans un fichier XML existant
    Par nettynet dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 17/10/2007, 08h07
  5. [XML] ajout/suppression d'un node avec xml::xyz
    Par LFC dans le forum Modules
    Réponses: 2
    Dernier message: 11/07/2007, 20h25

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