1

我正在使用以下脚本:

#!/usr/local/bin/perl -wT

use strict;
use warnings;

print "Content-type: text/html\n\n";
print "xml reader";

# use module
use XML::Simple;
use Data::Dumper;

#print Dumper (XML::Simple->new()->XMLin());

它会读入我的名为 xml.xml 的 xml 文件

如果我现在将 xml 文件移出我的 cgi-bin,请更改其名称并使用以下命令引用它:

#print Dumper (XML::Simple->new()->XMLin("../resource.xml"));

它仍然有效。

如果我现在尝试使用 url 而不是脚本不会返回任何内容:

print Dumper (XML::Simple->new()->XMLin("http://digitalessence.net/resource.xml"));

我尝试过使用和不使用 http://,没有 www 以及各种不同的方法,但它没有返回任何内容。

我在这里做了一些愚蠢的事情还是不会加载远程网址?

谢谢。

4

2 回答 2

7

中的XMLin()方法XML::Simple不支持从 URL 获取 XML。在应用XMLin(). 从XML::Simple文档中可以清楚地看到这一点。

于 2011-09-19T12:17:22.930 回答
5

您可以如下修改您的程序,使用 LWP 检索远程资源:

[...]
# use module
use XML::Simple;
use LWP;
use Data::Dumper;

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new( GET => "http://digitalessence.net/resource.xml" );
my $res = $ua->request( $req );

print Dumper (XML::Simple->new()->XMLin( $res->content ));
于 2011-09-19T12:23:59.810 回答