4

URL から取得される XML から <received>123</received> の 123 など、特定の文字列を取得したいと考えています。

コードを書きましたが、エラーメッセージが表示されたままになりました:

/usr/share/perl5/XML/Twig.pm 行 392 で参照に bless を試みます。

どうすれば解決できますか?

コード:

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 に答える