Bonjour,
J'essai en VBA d'ajouter <Poi /> sous <Song ..> dans un fichier XML - voir le résultat attendu plus bas
Fichier database.xml d'origine (avant tout code) :
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?xml version="1.0" encoding="UTF-8"?> <VirtualDJ_Database Version="8.4"> <Song FilePath="\Music_Path\Author_1 - Title_1.mp3"> <Tags Author="Author_1" Title="Title_1" Bpm="2.068965" Flag="1"/> <Infos SongLength="191.295000" FirstSeen="1584402618"/> </Song> </VirtualDJ_Database>
Cette base doit avoir: 1 espace avant <Song .. et 2 espaces avant les autres <Tags ..>, <Infos..>, <Poi...>.
Fichier database.xml modifié (après exécution du code) - mauvais résultat, voir le résultat attendu plus bas
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <?xml version="1.0" encoding="UTF-8"?><VirtualDJ_Database Version="8.4"> <Song FilePath="\Music_Path\Author_1 - Title_1.mp3"> <Tags Author="Author_1" Title="Title_1" Bpm="2.068965" Flag="1"/> <Infos SongLength="191.295000" FirstSeen="1584402618"/> <Poi/></Song> </VirtualDJ_Database>
Résultat attendu :
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <?xml version="1.0" encoding="UTF-8"?> <VirtualDJ_Database Version="8.4"> -------------------CARRIAGE RETURN BEFORE <Song FilePath="\Music_Path\Author_1 - Title_1.mp3"> <Tags Author="Author_1" Title="Title_1" Bpm="2.068965" Flag="1"/> <Infos SongLength="191.295000" FirstSeen="1584402618"/> <Poi/> -----------(ADDED NODE----------------------- 2 SPACES BEFORE </Song> ---------------------------------------------- CARRIAGE RETURN + 1 SPACE BEFORE </VirtualDJ_Database>
Code utilisé :
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 Sub ADD_NODE() Dim oXMLFileMod As MSXML2.DOMDocument60 Set oXMLFileMod = New MSXML2.DOMDocument60 oXMLFileMod.preserveWhiteSpace = True oXMLFileMod.Load "M:\VirtualDJ\database.xml" ------ (select a parent node) Set ParentNode = oXMLFileMod.SelectSingleNode("/VirtualDJ_Database/Song[1]") ----- (add a new childNode) Set childNode = oXMLFileMod.createElement("Poi") ParentNode.appendChild (childNode) oXMLFileMod.Save "M:\VirtualDJ\database.xml" End Sub
Partager