Parse XML et extraction des données voulues
Salut,
Je cherche à extraire des données d'un gros, très gros fichier XML.
Voici le type d'arborescence:
Code:
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:
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