This shows you the differences between two versions of the page.
dl-xml-example [2009/05/10 15:16] jay |
dl-xml-example [2009/05/11 21:30] (current) jay |
||
---|---|---|---|
Line 23: | Line 23: | ||
<phone/> | <phone/> | ||
<fax/> | <fax/> | ||
+ | <label>Montreal</label> | ||
</location> | </location> | ||
<location> | <location> | ||
Line 36: | Line 37: | ||
<phone>(541) 338-2234</phone> | <phone>(541) 338-2234</phone> | ||
<fax/> | <fax/> | ||
+ | <label>Main Office</label> | ||
</location> | </location> | ||
...etc... | ...etc... | ||
Line 51: | Line 53: | ||
use HTTP::Request; | use HTTP::Request; | ||
use XML::Simple; | use XML::Simple; | ||
- | + | ||
- | my $params='&country=30'; | + | my $params='?country=30'; # for testing, we'll look for dealers in canada |
+ | my $baseurl='http://<your channelsuite URL>/API/DealerLocator/xml.cgi'; | ||
my $agent = LWP::UserAgent->new(env_proxy => 1,keep_alive => 1, timeout => 30); | my $agent = LWP::UserAgent->new(env_proxy => 1,keep_alive => 1, timeout => 30); | ||
- | my $url = "http://<your channelsuite URL>/DealerLocator/DealerLocatorWS.cgi".$params; # a GET URL string | + | my $url = $baseurl.$params; # a GET URL string |
my $header = HTTP::Request->new(GET => $url); | my $header = HTTP::Request->new(GET => $url); | ||
my $request = HTTP::Request->new('GET', $url, $header); | my $request = HTTP::Request->new('GET', $url, $header); | ||
+ | |||
# send HTTP GET request and get response object | # send HTTP GET request and get response object | ||
my $response = $agent->request($request); | my $response = $agent->request($request); | ||
+ | |||
my $data; | my $data; | ||
if ($response->is_success) { | if ($response->is_success) { | ||
my $xmlStream = $response->content; | my $xmlStream = $response->content; | ||
+ | print "received XML : $xmlStream\n"; | ||
my $xmlObject = new XML::Simple; | my $xmlObject = new XML::Simple; | ||
$data = $xmlObject->XMLin($xmlStream); # parse XML | $data = $xmlObject->XMLin($xmlStream); # parse XML | ||
+ | } else { | ||
+ | die $response->status_line; | ||
} | } | ||
- | # data is a ref to a nested data structure with parsed XML data | + | |
- | # do something useful with it... | + | use Data::Dumper; # handy perl module for dissecting your data structures |
+ | print Dumper $data; # $data includes an arrayref of hashrefs with xml fields | ||
+ | |||
+ | # now do something useful with it... | ||
</code> | </code> | ||