Générer multiples noeuds en XML
M
Bonjour,
Je souhaite générer un document XML à l'aide du VBA j'ai déjà posé une question sur comment attribuer des multiples attributs à une racine, maintenant j'ai un problème sur comment créer une liste dans un nœud je ne sais pas si j'utilise le bon vocabulaire … Je vous mets une image pour être plus compréhensible :
Pour l'instant j'ai ça comme code :
Private Sub CommandButton1_Click()
Dim Doc_XML As Object 'permet de créer le XML
Dim Root As Object 'permet de créer la racine du XML
Dim Node As Object 'permet de créer les noeuds
Dim Name As Object 'permet de créer les attributs
Dim Chemin As String 'Chemin de sauvegarde
Set Doc_XML = CreateObject("MSXML2.DOMDocument") 'Création du XML
'Ajout des données d'encodage/etc...
Set Node = Doc_XML.CreateProcessingInstruction("xml", "version=""1.0"" encoding=""utf-8""")
Doc_XML.appendChild Node 'Ajout des données au fichier
Set Node = Nothing 'Remise à zéro du noeud
Set Root = Doc_XML.CreateElement("SWOOMat") 'Création d'une racine
Doc_XML.appendChild Root 'Ajout de la racine au XML
Root.appendChild Doc_XML.createTextNode(vbCrLf)
'problème sur cette partie en attente de réponse
' Création d'un attribut dans la racine : xmlns avec le nom de fichier xsd
' Set docAttrib = xmlDoc.CreateAttribute("xmlns")
'docAttrib.Text = "http://www.w3.org/2001/XMLSchema" 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="1" xmlns="http://www.eficad.com//SWOODMat""
'rootElement.Attributes.setNamedItem docAttrib
Set Node = Doc_XML.CreateElement("Materials") 'Création d'un noeud
Root.appendChild Node 'Ajout du noeud à la racine
'Node.Text = "Text 1" 'Ajout d'un texte dans le noeud 'Remise à zéro du noeud
Root.appendChild Doc_XML.createTextNode(vbCrLf)
'Ajout de la partie attribut si tu le souhaite
'Set Name = Doc_XML.CreateAttribute("Attrib") 'Création de l'attribut
'Name.NodeValue = "Ce que tu veux" 'Nommnation de l'attribut
'Node.SetAttributeNode Name 'Ajout de l'attribut au noeud
If TextBox1 = "" Then
MsgBox "Renseignez le nom que vous souhaitez attribuer au fichier"
Else
Chemin = ThisWorkbook.Path & "\" & TextBox1.Text & ".xml" 'Chemin de sauvegarde + Nom du fichier
Doc_XML.Save Chemin 'Sauvegarde
TextBox1 = ""
End If
End Sub
M
Quelqu'un aurait-il une explication s'il vous-plaît ?