2 pièce(s) jointe(s)
XML::DOM Manipulation de node & attribut
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:
Code:
1 2 3 4 5
| if($type eq "Text")
{
@tab = $doc->getElementsByTagName ("Format");
$Text_Codec = $tab[4]->getFirstChild()->toString();
} |
Ici j'utilise un tableau,
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:
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> |