Parser un fichier xml en perl
Bonjour,
Je debute en perl. Pour l'instant j'ai reussi à lire un fichier text et à extraire des données.
En ce moment, j'aimerai parser un fichier xml et de recuperer certaines données.
Mon fichier xml est de ce type :
Code:
1 2 3 4 5 6
| <?xml version="1.0" encoding="UTF-8" ?>
<voiture>
<info count="-1" ended="1376903248" name="A" started="1376903248" status="OK" statusMsg="" />
<info count="-1" ended="1376903275" name="B" started="1376903248" status="OK" statusMsg="" />
...
</voiture> |
Je dois extraire par exemple pour 'name=B' :
- la valeur de {ended} et {started} => diff = {ended} - {started}
- le {status}
J'ai regardé ce lien :
http://search.cpan.org/
ainsi que
http://djibril.developpez.com/tutoriels/perl/perl-xml/
Mais je suis perdue avec tous les types de module que je peux utiliser :(
Code:
1 2 3
| XML::LibXML
XML::Parser
XML::Simple |
Dans mon cas, je pense utiliser :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| use strict;
use warnings;
use File::Path;
.....
use XML::LibXML::Parser;
my $OUTDIR="$home";
my $OUTFILE="file.xml";
my $parser;
my $doc;
$parser = new XML::Parser();
$doc = $parser->parsefile ($OUTFILE);
# load
open my $fh, '<', 'file.xml';
$doc = XML::LibXML->load_xml(IO => $fh); |
Là je bloque pour lui faire comprendre dans la balise voiture, l'attribut name = B, je recupere {ended},{started},{status}.
J'ai essayé de regarder sur internet, je suis perdue avec toutes les infos.
Si vous pouvez me donner plus d'explication ou des conseils, ça m'aiderait enormement :)
Je vous remercie d'avance.