VBA et XML, set Attribute - VB/VBA/VBS - Programmation
Marsh Posté le 13-07-2012 à 22:07:55
Stp met les balises
Code :
|
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 :
|
Marsh Posté le 13-07-2012 à 09:33:28
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 :
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
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 :
singleCroupion.setAttribute("x", "y" ) = "y"
singleCroupion.setAttribute("x" ) = "y"
singleCroupion.setAttribute("x", "y" )
merci d'avance de vos suggestions!
Possum3D