jugdish114 has asked for the wisdom of the Perl Monks concerning the following question:
#all this works: my $xmlsimple = XML::Simple->new(); my $response = $xmlsiple->XMLin($xml_content->content); print "resultid:" . $response->{channel}->{result}->{resultid}; #this doesn't work: my $resultid = $response->{channel}->{result}->{resultid}; print "resultid: " . $resultid;
Grandfather, et al:use XML::Simple; use LWP::Simple; use Data::Dumper; use HTTP::Request::Common; use LWP::UserAgent; my $url = "http://localhost/xml/add_order.xml"; my $UserAgent = LWP::UserAgent->new(agent => 'perl post'); my $xml_content = $UserAgent->request(POST $url,["userid" => $userid +, "password" => $pass +word, "projectid" => $pro +jectid, "ordertypeid" => $o +rdertypeid, "orderdateid" => $o +rderdateid, "accountid" => $acc +ountid, "segcodeid" => $seg +codeid, "marketid" => $mark +etid, "marketday" => $mar +ketday, "marketmonth" => $m +arketmonth, "marketyear" => $ma +rketyear, "putcall" => $putca +ll, "strikeprice" => $s +trikeprice, "bs" => $bs, "quantity" => $quan +tity, "orderprice" => $or +derprice, "entered_by" => $en +tered_by ]); print $xml_content->error_as_HTML unless $xml_content->is_success; #if we want to see the XML #printf $xml_content->content; # also see ->code, ->is_info, ->is_success, ->is_error, - +>header, ->message, etc my $xmlsimple = XML::Simple->new( ); my $response = $xmlsimple->XMLin($xml_content->content); #if we wanted to see the object as a structure: #printf Dumper($response); if ($response->{channel}->{error}->{errorid} == "") { print "resultid: " . $response->{channel}->{result}->{resultid} . +"\n"; print "resultdesc: " . $response->{channel}->{result}->{resultdesc +} . "\n"; print "orderid: " . $response->{channel}->{result}->{orderid} . "\ +n"; my $resultid = $response->{channel}->{result}->{resultid}; +#ERROR my $resultdesc = ${\$response->{channel}->{result}->{resultdesc}}; + #ERROR my $orderid = $response->{channel}->{result}->{orderid}; +#ERROR printf "ERROR resultid:" . $resultid . "\n"; printf "ERROR: resultdesc:" . \$resultdesc . "\n"; printf "ERROR: orderid:" . $orderid . "\n\n"; # foreach my $tmp (@{$response->{channel}->{result}}) { # print "resultid: " . $tmp->{resultid} . "\n"; # print "resultdesc: " . $tmp->{resultdesc} . "\n"; # print "orderid: " . $tmp->{orderid} . "\n"; # print "\n"; # } } else { print "errorid: " . $response->{channel}->{error}->{errorid} . "\n +"; print "error desc: " . $response->{channel}->{error}->{errordesc} +. "\n"; print "\n"; }; my @ret_arry = ("test", $resultid, $resultdesc, $orderid); printf "ret_arry0:" . $ret_arry[0] . "\n"; printf "ret_arry1:" . $ret_arry[1] . "\n"; printf "ERROR ret_arry2:" . $ret_arry[2] . "\n"; printf "ERROR ret_arry3:" . $ret_arry[3] . "\n\n"; #%ret_hash = (resultid => "a", # resultdesc => "b"); return @ret_arry;
thanks again!Adding order resultid: 0 resultdesc: Success - Order 109 has been added to ProjectID 4217. orderid: 109 ERROR resultid:0 ERROR: resultdesc:SCALAR(0x181187c) ERROR: orderid:109 ret_arry0:test ret_arry1: ERROR ret_arry2: ERROR ret_arry3: array: test arry0: test arry1: ERROR arry2: ERROR arry3: done
Edited by planetscape - added code tags
|
|---|