I want to get a specific string, for example 123 in <received>123</received> from
some XML that will be retrieved from a URL.
I have write a code but stuck with an error message:
Attempt to bless into a reference at /usr/share/perl5/XML/Twig.pm line 392.
How can I solve it?
The code:
use XML::Twig;
use LWP::Simple;
my $url = 'http://192.168.1.205:13000/status.xml';
my $twig = new XML::Twig(TwigRoots => {
'smsc/received' => sub {$author = $_[1]->text; }});
$twig->nparse( $url );
$twig->print;
nparse takes care of the new
for you (hence the 'n'), what you want in this case is probably xparse
, or just let the module figure it out and do this:
my $url= 'http://192.168.1.205:13000/status.xml';
my $twig= XML::Twig->parse( twig_roots =>
{ 'smsc/received' => sub { $author= $_[1]->text;}},
$url
);
$twig->print; # I am not sure why you print the twig instead of just $author
Appears to be a bug in nparse method because if you replace that line with:
$twig->parse( LWP::Simple::get($url) );
Then you should find it works fine (or it does when I try it).
/I3az/