4

我想从某个将从 URL 中检索的 XML 中获取一个特定的字符串,例如 <received>123</received> 中的 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;
4

2 回答 2

5

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
于 2009-10-06T13:50:12.963 回答
3

似乎是nparse方法中的一个错误,因为如果将该行替换为:

$twig->parse( LWP::Simple::get($url) );

然后你应该会发现它工作正常(或者当我尝试它时)。

/I3az/

于 2009-10-06T11:43:10.640 回答