Salut,
Je cherche à extraire des données d'un gros, très gros fichier XML.
Voici le type d'arborescence:
La première "iValue" correspond au premier "MeasType", la deuxième correspond au deuxième, ainsi de suite...
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106 <MeasDataCollection> <measFileHeader> <fileFormatVersion>1</fileFormatVersion> <senderName> 4F 50 54 4E 43 2F 42 53 43 50 4B 35 2F 47 31 31 42 2F 49 50 41 33 20 </senderName> <senderType></senderType> <vendorName>45 72 69 63 73 73 6F 6E</vendorName> <collectionBeginTime>20120807220000Z</collectionBeginTime> </measFileHeader> <measData> <MeasData> <nEId> <nEUserName></nEUserName> <nEDistinguishedName></nEDistinguishedName> </nEId> <measInfo> <MeasInfo> <measTimeStamp>20120807221500Z</measTimeStamp> <granularityPeriod>900</granularityPeriod> <measTypes> <MeasType>49 50 53 45 4E 54 4B 42 59 54 45 53</MeasType> <MeasType>49 50 52 45 43 4B 42 59 54 45 53</MeasType> <MeasType>49 50 4C 4F 53 54 50 41 43 4B 55 4C</MeasType> <MeasType>49 50 4E 55 4D 53 43 41 4E</MeasType> <MeasType>49 50 55 4C 52 45 43 50 41 43 4B</MeasType> <MeasType>49 50 44 4C 53 45 4E 54 50 41 43 4B</MeasType> <MeasType>44 4C 37 30 37 35 53 54 4E 4C 4F 41 44</MeasType> <MeasType>44 4C 37 36 38 30 53 54 4E 4C 4F 41 44</MeasType> <MeasType>44 4C 38 31 38 35 53 54 4E 4C 4F 41 44</MeasType> <MeasType>44 4C 38 36 39 30 53 54 4E 4C 4F 41 44</MeasType> <MeasType>44 4C 39 31 39 35 53 54 4E 4C 4F 41 44</MeasType> <MeasType>44 4C 39 36 30 30 53 54 4E 4C 4F 41 44</MeasType> <MeasType>55 4C 37 30 37 35 53 54 4E 4C 4F 41 44</MeasType> <MeasType>55 4C 37 36 38 30 53 54 4E 4C 4F 41 44</MeasType> <MeasType>55 4C 38 31 38 35 53 54 4E 4C 4F 41 44</MeasType> <MeasType>55 4C 38 36 39 30 53 54 4E 4C 4F 41 44</MeasType> <MeasType>55 4C 39 31 39 35 53 54 4E 4C 4F 41 44</MeasType> <MeasType>55 4C 39 36 30 30 53 54 4E 4C 4F 41 44</MeasType> <MeasType>44 4C 31 30 30 53 54 4E 4C 4F 41 44</MeasType> <MeasType>55 4C 31 30 30 53 54 4E 4C 4F 41 44</MeasType> <MeasType>49 50 4F 56 4C 4C 31</MeasType> <MeasType>49 50 4F 56 4C 4C 32</MeasType> <MeasType>50 53 44 49 53 43 4F 56 4C</MeasType> <MeasType>43 53 44 49 53 43 4F 56 4C</MeasType> <MeasType>49 50 4F 56 4C 43 53 52 45 47</MeasType> <MeasType>49 50 4F 56 4C 50 53 52 45 47</MeasType> </measTypes> <measValues> <MeasValue> <measObjInstId>41 42 49 53 49 50 2E 52 58 4F 54 47 2D 35 31</measObjInstId> <measResults> <iValue>63576</iValue> <iValue>60332</iValue> <iValue>0</iValue> <iValue>900</iValue> <iValue>131844</iValue> <iValue>143268</iValue> <iValue>0</iValue> <iValue>0</iValue> <iValue>0</iValue> <iValue>0</iValue> <iValue>0</iValue> <iValue>0</iValue> <iValue>0</iValue> <iValue>0</iValue> <iValue>0</iValue> <iValue>0</iValue> <iValue>0</iValue> <iValue>0</iValue> <iValue>0</iValue> <iValue>0</iValue> <iValue>0</iValue> <iValue>0</iValue> <iValue>0</iValue> <iValue>0</iValue> <iValue>0</iValue> <iValue>0</iValue> </measResults> ..............
Dans cet exemple il n'y a qu'un seul "measObjInstId", en réalité il y en a 254 je crois.
Le but de mon script Perl est de sortir toutes les ivalues pour chaque measObjInstId avec le nom correspondant aux ivalues.
Exemple:
J'ai essayé des choses mais je n'y arrive pas car les types de valeur sont en dehors des balises "measObjInstId".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Objet1: Type1 = valeur1 Type2 = valeur2 Type3 = valeur3 ... Objet2: Type1=valeur1 Type2 = valeur2 Type3 = valeur3 ...
Pouvez vous m'aider?
Merci
Partager