1 # $Id: URI.pm,v 1.1 2001-11-11 18:41:51 matt Exp $
3 package XML::SAX::PurePerl::Reader::URI;
7 use XML::SAX::PurePerl::Reader;
8 use File::Temp qw(tempfile);
11 ## NOTE: This is *not* a subclass of Reader. It just returns Stream or String
12 ## Reader objects depending on what it's capabilities are.
18 if (-e $uri && -f _) {
20 open($fh, $uri) || die "Cannot open file $uri : $!";
21 return XML::SAX::PurePerl::Reader::Stream->new($fh);
23 elsif ($uri =~ /^file:(.*)$/ && -e $1 && -f _) {
26 open($fh, $file) || die "Cannot open file $file : $!";
27 return XML::SAX::PurePerl::Reader::Stream->new($fh);
30 # request URI, return String reader
31 require LWP::UserAgent;
32 my $ua = LWP::UserAgent->new;
33 $ua->agent("Perl/XML/SAX/PurePerl/1.0 " . $ua->agent);
35 my $req = HTTP::Request->new(GET => $uri);
40 my ($data, $response, $protocol) = @_;
44 my $res = $ua->request($req, $callback, 4096);
46 if ($res->is_success) {
48 return XML::SAX::PurePerl::Reader::Stream->new($fh);
51 die "LWP Request Failed";