Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3000 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VBA et XML, set Attribute

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

VBA et XML, set Attribute

n°2149200
_possum3D
Posté le 13-07-2012 à 09:33:28  profilanswer
 

Bonjour,
 
j'ai un pb sur lequel je bute depuis un moment déjà.
 
Je souhaite copier un node dans un node croupion, modifier un attribut du node croupion, et le copier dans un document DOM. un bout de code vaut mieux que de longs discours :D :
 
code:
 
Sub storeNode()
      Dim oDocPath As String
      Dim oDoc As DOMDocument
      Dim SingleNode As MSXML2.IXMLDOMElement
      Dim singleCroupion As MSXML2.IXMLDOMElement
      Dim i, j As Integer
 
      oDocPath = "C:\...\test.xml"
 
 
       
       'CREATE A DOM DOCUMENT OBJECT
      Set oDoc = New DOMDocument
       
      'Load the temporary file
      oDoc.async = False            'the doc needs to be loaded into the DOMdoc synchronously: therefore, we put false here
      oDoc.Load oDocPath
      Dim toto As Boolean
      toto = False
       
      For Each SingleNode In oDoc.getElementsByTagName("item" )
            If SingleNode.getAttribute("empty" ) = "true" Then
                 Set singleCroupion = SingleNode
                 MsgBox singleCroupion.getAttribute("code" )
            End If
 
      Next
 
      singleCroupion.setAttribute("x", "y" ) = "y" 'Et boom! une erreur :kaola:  
      Set oDoc2 = New DOMDocument
      Dim oNode
      Set oNode = oDoc2.createProcessingInstruction("xml", "version='1.0' encoding='ISO-8859-1'" )
      Set oNode = oDoc2.InsertBefore(oNode, oDoc2.ChildNodes.Item(1))
      Set singleCroupion = oDoc2.appendChild(singleCroupion)
      oDoc2.Save "C:\..\outtest.xml"
       
    '...
 
End Sub
 
 
L'instruction setAttribute bloque, quel que soit la syntaxe :fou: :
 singleCroupion.setAttribute("x", "y" ) = "y"
 singleCroupion.setAttribute("x" ) = "y"
 singleCroupion.setAttribute("x", "y" )
 
merci d'avance de vos suggestions!
 
Possum3D :hello:

mood
Publicité
Posté le 13-07-2012 à 09:33:28  profilanswer
 

n°2149295
dreameddea​th
Posté le 13-07-2012 à 22:07:55  profilanswer
 

Stp met les balises

Code :
  1. autour du code pour une meilleur lisibilité
  2. D'après la doc http://msdn.microsoft.com/en-us/li [...] 85%29.aspx
  3. c'est la syntaxe
  4. [code]
  5. singleCroupion.setAttribute("x","y" )


 
C'est quoi le message d'erreur ?
Je pense que le pb peut venir du fait que singleCroupion n'est peut être pas "setté" (il suffit que le If SingleNode.getAttribute("empty" ) = "true" then ne trouve rien)
Pour moi le code n'est pas bon :

Code :
  1. if Not singleCroupion is nothing then
  2.       singleCroupion.setAttribute("x", "y" )
  3.       Set oDoc2 = New DOMDocument
  4.       Dim oNode
  5.       Set oNode = oDoc2.createProcessingInstruction("xml", "version='1.0' encoding='ISO-8859-1'" )
  6.       Set oNode = oDoc2.InsertBefore(oNode, oDoc2.ChildNodes.Item(1))
  7.       Set singleCroupion = oDoc2.appendChild(singleCroupion)
  8.       oDoc2.Save "C:\..\outtest.xml"
  9. end if


Message édité par dreameddeath le 13-07-2012 à 22:11:42

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VBA et XML, set Attribute

 

Sujets relatifs
[VBA Word] Chexkbox et copieProblème gestion des dates VBA
Insertion de caractère dans un nom de mes champs XMLTCD en VBA
[VB/VBA/VBS]Trouver une référence dans plusieurs centaines de wordVBA
VBA- lisbox-user form[VBA / Excel] supprimer une ligne sur deux
[VBA / Excel] Modéliser dette dynamiquement[VBA] Enregistrement de valeurs dans un fichier texte
Plus de sujets relatifs à : VBA et XML, set Attribute


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR