HTML::ResolveLink - Resolve relative links in (X)HTML into absolute URI
use HTML::ResolveLink; my $resolver = HTML::ResolveLink->new( base => 'http://www.example.com/foo/bar.html', callback => sub { my($uri, $old) = @_; # ... }, ); $html = $resolver->resolve($html);
HTML::ResolveLink is a module to rewrite relative links in XHTML or HTML into absolute URI.
For example. when you have
<a href="foo.html">foo</a> <img src="/bar.gif" />
and use http://www.example.com/foo/bar as base URL, you'll get:
http://www.example.com/foo/bar
base
<a href="http://www.example.com/foo/foo.html">foo</a> <img src="http://www.example.com/bar.gif" />
If the parser encounters <base> tag in HTML, it'll honor that.
<base>
my $resolver = HTML::ResolveLink->new( base => 'http://www.example.com/', callback => \&callback, );
base is a required parameter, which is used to resolve the relative URI found in the document.
callback is an optional parameter, which is a callback subroutine reference which would take new resolved URI and the original path as arguments.
callback
Here's an example code to illustrate how to use callback function.
my $count; my $resolver = HTML::ResolveLink->new( base => $base, callback => sub { my($uri, $old) = @_; warn "$old is resolved to $uri"; $count++; }, ); $html = $resolver->resolve($html); if ($count) { warn "HTML::ResolveLink resolved $count links"; }
$html = $resolver->resolve($html);
Resolves relative URI found in $html into absolute and returns a string containing rewritten one.
$html
$count = $resolver->resolved_count;
Returns how many URIs are resolved during the previous resolve method call. This should be called after the resolve, otherwise returns undef.
Tatsuhiko Miyagawa <miyagawa@bulknews.net>
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
HTML::Parser, HTML::LinkExtor
1 POD Error
The following errors were encountered while parsing the POD:
You forgot a '=back' before '=head1'
To install HTML::ResolveLink, copy and paste the appropriate command in to your terminal.
cpanm
cpanm HTML::ResolveLink
CPAN shell
perl -MCPAN -e shell install HTML::ResolveLink
For more information on module installation, please visit the detailed CPAN module installation guide.