Bonjour,
1) j'aimerais savoir s'il existait un tutoriel sur l'extraction .xml vers excel ou bien un document qui répondra ou aidera à répondre à ma question suivante.
2 ) J'ai un gros fichier .xml qui se présente sous cette structure :
Afin d'extraire les champs qui m'interressaient (kind et name), j'ai réussi a créer un bout de code avec des exemples que j'ai puisé ici et là, que voici :
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
18
19
20
21
22
23 <?xml version="1.0"?> <lists> <list path="svn://Machine/Repertoire"> [...] <entry kind="file"> <name>trunk/Repertoire/fichier.ext</name> <size>13</size> <commit revision="10"> <author>admin</author> <date>2008-12-12T14:39:23.921875Z</date> </commit> <lock> <token>opaquelocktoken:194189eb-5506-6240-97a2-b72c0a435c08</token> <owner>admin</owner> <created>2008-12-12T14:39:23.921875Z</created> </lock> </entry> [...] </list> </lists>
Je pense qu'il est possible d'optimiser le temps de traitement en ne faisant qu'une seule boucle, mais je ne sais pas trop comment m'y prendre
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 Private Sub ImportBase_Click() Dim sPath As String Dim xmlDoc As Variant, a As Variant Dim oElement As Object Dim Ligne As Integer sPath = Environ("userprofile") ChDrive "C:" ' Choix du lecteur ChDir sPath 'Choix du répertoire a = Application.GetOpenFilename("fichier xml (*.xml), *.xml", _ , "Sélection du fichier Liste.xml", , false) Set xmlDoc = CreateObject("Microsoft.XMLDOM") xmlDoc.async = "false" xmlDoc.Load (a) Set oElement = xmlDoc.documentElement Ligne = 2 For Each oElement In xmlDoc.getElementsByTagName("entry") Sheets("Feuil1").Cells(Ligne, 1) = oElement.getAttribute("kind") Ligne = Ligne + 1 Next Ligne = 2 For Each oElement In xmlDoc.getElementsByTagName("name") Sheets("Feuil1").Cells(Ligne, 2) = oElement.nodeTypedValue Ligne = Ligne + 1 Next End Sub
Merci d'avance.
Note : je vais essayer de comprendre ce document : http://www.w3schools.com/dom/dom_nodes_get.asp
Partager