Advanced Problem

admin

Administrator
Staff member
Hello. I need help extracting the "keyword" name from the xml and printingit into the html page using the script belowhere's my xml:<MYRESULTS xmlns:sql="urn:schemas-microsoft-com:xml-sql"><PARAMETERS><row keyword="casino"/><row resultindex="0"/><row pagestart="1"/><row pagesize="5"/></PARAMETERS><RESULTS><row title="ecasino365- Instant & Download Games/Sportsbook" bid="1.0600"advertisercost="2.6500" adult="no" advertiserurl="www.ecasino365.com"/><row title="Excelsior Casino Land Based" advertiserurl="www.helloworld.com"/></RESULTS></MYRESULTS>----------------HERE'S MY SCRIPT:#!/usr/bin/perl -wTrequire "/usr/local/lib/perl5/site_perl/5.6.1/XML/Simple.pm";require "/usr/local/lib/perl5/5.6.1/strict.pm";use strict;use XML::Simple;use LWP::UserAgent;use HTTP::Request;use CGI;print <<EOF;Content-type: text/html<HTML><BODY><TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 ><TR><TD>EOFmy $q = new CGI;if (defined $q->param("keyword")) {my $baseURL = "http://partners.business.com/search/search?";my $aff = 'test';my $pagestart = "1";if (defined $q->param("pagestart")) {$pagestart = $q->param("pagestart");}my $keyword = url_encode($q->param("keyword"));my $pagesize = "25"; # Search results per page.my $location = $baseURL .'aff=' . "$aff" .'&pagesize=' . "$pagesize" .'&showtotal=yes' .'&keyword=' . "$keyword";# Create HTTP agent and fetch the search results for specified keyword.my $agent = new LWP::UserAgent;$agent->timeout(30);my $req = new HTTP::Request GET => "$location" .'&pagestart=' . "$pagestart";$req->header('Accept' => 'text/html');my $result = $agent->request( $req );# Change characters outside of the printable ASCII range to blank.my $xmlin = $result->content;$xmlin =~ s/[\x00-\x1F]/ /g;$xmlin =~ s/[\x7F-\xFF]/ /g;# Make sure we got a valid XML response.$_ = $xmlin;my $valid_results = length(/\<EPILOTRESULTS /);if ($valid_results) {# Check for end of results and no results.my $end_of_results = length(/endofresults\=\"yes\"/);my $zero_results = length(/\<row totalresults value\=\"0\" /);if ($zero_results) {print "No search results found.<br>\n";} else {# Build page navigation links.my $navigate = "";my $navlink = '<a href=http://forums.devx.com/archive/index.php/"' . $q->url .'?keyword=' . "$keyword";my $prevlink = "";if ($pagestart ne "1") {$prevlink = "$navlink" .'&pagestart=' . ($pagestart - 1) .'">[Previous]</a>';}my $nextlink = "";if ( ! $end_of_results) {$nextlink = "$navlink" .'&pagestart=' . ($pagestart + 1) .'">[Next]</a>';}$navigate = '<p align="right">' ."$prevlink" .' Page ' . "$pagestart" . ' ' ."$nextlink" ."</p>\n";# Return the search results.print $navigate;my $results = "";my $row;my $xml = XMLin($xmlin);for $row ( @ {$xml->{RESULTS}->{row} } ){$results = $results . '<p><b><a target="_blank" title="';if (exists $row->{tooltip}) {$results = $results . "$row->{tooltip}";}if (exists $row->{urllink}) {$results = $results . '" href=http://forums.devx.com/archive/index.php/"' . "$row->{urllink}" . '">';} else {$results = $results . '" href=http://forums.devx.com/archive/index.php/"' . "" . '">';}if (exists $row->{title}) {$results = $results . "$row->{title}";} elsif (exists $row->{description}) {$results = $results . "$row->{description}";} elsif (exists $row->{urllink}) {$results = $results . "$row->{urllink}";}$results = $results . '</a></b><br>';if (exists $row->{description}) {$results = $results . "$row->{description}" . '<br>';}$results = $results . '</p>';}print '<table width="550" cellpadding="0" cellspacing="0" border="0"align="center">';print ' <tr>';print ' <td valign="top" colspan="4">';print $results;print ' </td>';print ' </tr>';print '</table>';print $navigate;}} else {print "Invalid results.<br>\n";}}print <<"EOF";</TD></TR></TABLE></BODY></HTML>EOFsub url_encode {# This sub handles URL encoding.my $text = shift;$text =~ s/([^a-z0-9_.!~*'() -])/sprintf "%%%02X", ord($1)/egi;$text =~ tr/ /+/;return $text;}--------------
 
Back
Top