Salut,

Je cherche à extraire des données d'un gros, très gros fichier XML.

Voici le type d'arborescence:
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>
..............
La première "iValue" correspond au premier "MeasType", la deuxième correspond au deuxième, ainsi de suite...

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:
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
   ...
J'ai essayé des choses mais je n'y arrive pas car les types de valeur sont en dehors des balises "measObjInstId".

Pouvez vous m'aider?

Merci