# # reformat html inside xml back to html (basically, support for tables) # # filed #-# field ### # ... sub back2html { my $html = shift; my $url_params = shift; $html =~ s//>/g; my $out; foreach $line (split(/\s*###\s*/,$html)) { $out .= ""; my @items = split(/\s*#-#\s*/,$line); # convert spaces in left field to non-breaking spaces $items[0] =~ s#\s+# #g; # try to make link on right field sub mkurl($) { my $url = shift || die "mkurl needs url as argument"; # chop URLS longer than 60 characters my $txturl = substr($1,0,60); $txturl .= "..." if (length($1) > 60); return "$txturl"; } $items[1] =~ s#(http://[\S]+)#mkurl($1)#gie; $out .= join("",@items); $out .= "\n"; } # put
back into html $out =~ s,<br/*>,
,gi; # put yyyy back into html sub mkurl_param($$$$) { my ($a_href,$url,$text,$a_end) = @_; if ($url_params) { if ($url =~ m#\?#) { $url .= "&".$url_params; } else { $url .= "?".$url_params; } } return '<'.$a_href.'"'.$url.'">'.$text.'<'.$a_end.'>'; } $out =~ s#<(a\s+href=)['"]*(.+?)['"]*>(.+?)<(/a)>#mkurl_param($1,$2,$3,$4)#gsie; return $out; } 1;