スーパーエディット:この方法ではWWW :: Mechanizeが必要ですが、Webサイトにログインしてxmlページを取得できます。コメントにあるいくつかのことを変更する必要があります。お役に立てれば。
use strict;
use warnings;
use Data::Dumper;
use XML::Simple;
use WWW::Mechanize;
# Create a new instance of Mechanize
$bot = WWW::Mechanize->new();
# Create a cookie jar for the login credentials
$bot->cookie_jar(
HTTP::Cookies->new(
file => "cookies.txt",
autosave => 1,
ignore_discard => 1,
)
);
# Connect to the login page
$response = $bot->get( 'http://www.thePageYouLoginTo.com' );
# Get the login form
$bot->form_number(1);
# Enter the login credentials.
# You're going to have to change the login and
# pass(on the left) to match with the name of the form you're logging
# into(Found in the source of the website). Then you can put your
# respective credentials on the right.
$bot->field( login => 'thisIsWhereYourLoginInfoGoes' );
$bot->field( pass => 'thisIsWhereYourPasswordInfoGoes' );
$response =$bot->click();
# Get the xml page
$response = $bot->get( 'http://website/computers/computers_main/config.xml' );
my $content = $response->decoded_content();
my $parser = new XML::Simple;
my $data = $parser->XMLin($content);
print Dumper($data);
これを試してみてください。上記の回答のようにLWP::Simpleを使用します。ページに接続してそのページのコンテンツ(xmlファイル)を取得し、XMLinを介して実行します。
編集: get$url行に簡単なエラーチェックを追加しました。
Edit2:ログインが不要な場合に機能するはずなので、ここにコードを保持します。
use strict;
use warnings;
use Data::Dumper;
use XML::Simple;
use LWP::Simple;
my $parser = new XML::Simple;
my $url = 'http://website/computers/computers_main/config.xml';
my $content = get $url or die "Unable to get $url\n";
my $data = $parser->XMLin($content);
print Dumper($data);