Problème pour parser un fchiera XML avec LibXML
Bonjour,
Je rencontre un problème pour parser un fichier XML avec la librairie LibXML. J'ai essayé de le faire sur un exemple simple.
Voici le fichier XML
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
<library>
<book>
<title>Perl Best Practices</title>
<author>Damian Conway</author>
<isbn>0596001738</isbn>
<pages>542</pages>
</book>
<book>
<title>Guitar for Dummies</title>
<author>Mark Phillips</author>
<author>John Chappell</author>
<isbn>076455106X</isbn>
<pages>392</pages>
</book>
</library> |
Voici mon code.pm
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
#!/usr/bin/perl
use strict;
use warnings;
my $filename = '/home/user/Modules/library.xml';
use XML::LibXML;
my $parser = XML::LibXML->new();
my $doc = $parser->parse_file($filename);
foreach my $book ($doc->findnodes('/library/book')) {
my($title) = $book->findnodes('./title');
} |
Et donc l'erreur que je rencontre est la suivante:
lost node at /usr/lib/perl5/vendor_perl/5.10.1/i386-linux-thread-multi/XML/LibXML.pm line 1274
Cette ligne correspond à la ligne my @nodes = $node -> _findnodes($xpath) de la fonction:
Code:
1 2 3 4 5 6 7 8 9 10 11
|
sub findnodes {
my ($node,$xpath) = @_;
my @nodes = $node -> _findnodes($xpath);
if (wantarray) {
return @nodes;
}
else {
return XML::LibXML::NodeList->new_from_ref(\@nodes,1);
}
} |
Voilà je sèche un peu pour comprendre le problème ...
Merci d'avance pour votre aide :).