Bonjour,
Vous trouverez en pièce jointe mon fichier source et mon script.
C'est assez dur à expliquer,
Ce qu'il faut savoir est que parmi les XML que je vais parser, certains ont deux tracks audio, et d'autres non.
Ce que je désire est de récupérer la donnée "Ceefax" du champ "Format" de la track "Text".
J'arrive à le faire en faisant:
Ici j'utilise un tableau,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if($type eq "Text") { @tab = $doc->getElementsByTagName ("Format"); $Text_Codec = $tab[4]->getFirstChild()->toString(); }
Le problème est que le jour où je parse un XML qui n'a qu'une track audio, mon tableau est alors décalé et mon "$tab[4]" est caduc.
Il faut savoir que je peux aussi avoir "x" track entre l'Audio et le Text.
Je souhaite récupérer uniquement la donnée "Format" de la track "Text" et rien d'autres.
Je n'arrive pas à le faire sans avoir toutes les autres...
Merci pour votre aide.
Fichier Source:
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 <?xml version="1.0" encoding="UTF-8"?> <Encoded> <File> <track type="General"> <CompleteName>Video01.ts</CompleteName> <Format>MPEG-TS</Format> </track> <track type="Video"> <Format>MPEG Video</Format> </track> <track type="Audio" streamid="1"> <Format>MPEG Audio</Format> </track> <track type="Audio" streamid="2"> <Format>MPEG Audio</Format> </track> <track type="Text"> <Format>Ceefax</Format> </track> </File> </Encoded>
Partager