Génération de fichier xml en vba

l2c

XLDnaute Nouveau
Bonjour le forum,

je me permet de vous exposer un problème que je n'arrive pas à solutionner concernant la création de fichier xml.

J'ai biensur déja trouvé beaucoup d'info, comme d'habitude, sur l'excellent wiki : https://www.excel-downloads.com/threads/ref-wiki-page-9-de-michelxld.92377/

J'arrive créer le fichier dont j'ai besoin et ca marche avec excel 2000 (pas le choix), mais là je bloque...

voici mon code :

Sub creerFichierXML()
Dim objDOM As DOMDocument
Dim XNodeRoot As IXMLDOMElement, Xnode As IXMLDOMElement
Dim oPi As IXMLDOMProcessingInstruction
Set objDOM = New DOMDocument
objDOM.resolveExternals = True
Set oPi = objDOM.createProcessingInstruction("xml", "version='1.0' encoding='ISO-8859-1' standalone='yes'")
Set oPi = objDOM.insertBefore(oPi, objDOM.childNodes.Item(0))
Set XNodeRoot = objDOM.createElement("noeudRacine")
Set XNodeRoot = objDOM.createElement("sousnoeudRacine")
objDOM.appendChild XNodeRoot

i = 2
While Cells(i, 1) <> ""
Set Xnode = objDOM.createElement(Sheets("feuil1").Cells(i, 1))
Xnode.Text = Sheets("feuil1").Cells(i, 2)
XNodeRoot.appendChild Xnode
i = i + 1
Wend

objDOM.Save ThisWorkbook.Path & "\leFichier.xml"
Set XNodeRoot = Nothing
Set Xnode = Nothing
Set objDOM = Nothing
End Sub


En fait, pour communiquer avec une autre appli, j'aurais besoin de générer un fichier xml avec un structure du type :

- <noeudRacine>
- <sousnoeudRacine>
<Balise1>Le Texte 1</Balise1>
<Balise1>Le texte 2</Balise1>
<Balise1>Le texte 3</Balise1>
</sousnoeudRacine>
</noeudRacine>

Mais je n'arrive pas à créer le second noeud "sousnoeudRacine" ->

Erreur : "Un seul élément de niveau supérieur est autorisé dans un document xml"

Quelqu'un aurait-il une idée ?

Merci d'avance.
 

Statistiques des forums

Discussions
285 053
Messages
1 865 446
Membres
156 264
dernier inscrit
robinson
Haut Bas