Hello tout le monde!
Patrick m'avait enseigné comment extraire une donnée dans un code source html avec l'aide du fameux "Split(Split(Code, "<donnee>")(1), "</donnee>")(0)"
Maintenant mon problème a changé car je génère un code source XML avec plusieurs dizaines de données à récupérer selon une IDLe contenu du XML ressemble à cela:
Code xml : 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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 - <references> - <reference> <referenceid>ID placé dans une cellule EXCEL</referencetid> - <headline> <![CDATA[donnéeX]]> </headline> - <caption> <![CDATA[donneeY]]> </caption> - <topic> <![CDATA[donneeZ]]> </topic> - <nombre> <total>2</total> <A>0</A> <B>1</B> <C>1</C> </nombre> - <donnees> - <global> - <donnee1> <amount>donné souhaitait</amount> <amount2>XERO</amount2> </donnee1> - <donnee2> <amount>donnés souhaitait</amount> <amount2>XERO</amount2> </donnee2> <type>PLUS</type> </global> - <B> - <donnee1> <amount>443644</amount> <amount2>XERO</amount2> </donnee1> - <donnee2> <amount>124444</amount> <amount2>XERO</amount2> </donnee2> <type>MOINS</type> - </B> - <C> - <donnee1> <amount>5464534</amount> <amount2>XERO</amount2> </donnee1> - <donnee2> <amount>3455433</amount> <amount2>XERO</amount2> </donnee2> <type>PLUS</type> - </C> - </donnees> - </references> '...plusieurs dizaines d'ID et de données
Donc mon but serait de récupérer les données utiles dans " references/donnees/global" en dessous de chaque ID et de les rapatrier dans des cellules a côté de mes ID placées dans la colonne (A:A). A noter que l'ordre des ID dans le XML n'apparait pas dans l'ordre de mes ID sur la colonne.
Voila un code "simplifié", c'est la seconde partie qui m'intéresse car elle n'est malheureusement qu'imaginaire :
Merci à tous !
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 'pas de problèmes pour la partie génération et extraction du code source xml listeID = concatener(A1:A50;""-"") url = "http://www.site.com" & listeID code = PostCodeSource (url) 'Voilà ce que j'imaginerai, pour le ciblage et la sélection de mes données utiles pour chaque ID For Each C In ThisWorkbook.Worksheets("Feuill1").Range("A1:A50") Ciblage = FindID(Code) "<referenceid>(C)</referenceid>" C.Offset(0, 1) = Ciblage(Split(Split(Code, "references/donnees/global/donnée1/amount")(1), "</amout>")(0)) 'inscrit la donnée utile qu'il y a en dessous de l'ID C.Offset(0, 2) = Ciblage(Split(Split(Code, "references/donnees/global/donnée2/amount")(1), "</amout>")(0)) 'inscrit la donnée utile qu'il y a en dessous de l'ID Next C![]()
Partager