Как я могу извлечь некоторые данные XML из URL, используя XML::Twig?
Я хочу получить определенную строку, например 123 в
Я написал код, но застрял с сообщением об ошибке:
Попытайтесь благословить ссылку в /usr/share/perl5/XML/Twig.pm строка 392.
Как я могу решить это?
Код:
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;
2 ответа
Решение
nparse заботится о new
для вас (отсюда и "n"), что вы хотите в этом случае, вероятно, xparse
или просто дайте модулю понять это и сделайте это:
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
Кажется, что это ошибка в методе nparse, потому что если вы замените эту строку на:
$twig->parse( LWP::Simple::get($url) );
Тогда вы должны найти, что он работает нормально (или это происходит, когда я пытаюсь это сделать).
/ I3az /