Keresek egy hozzáértő embert aki meg tudná oldani az alábbi problémát.
Egy MNB árfolyam lekérdezést szeretnék Perlben összehozni. A PHP kód:
$client = new SoapClient("http://www.mnb.hu/arfolyamok.asmx?WSDL");
$result = new SimpleXMLElement($client->GetCurrentExchangeRates()->GetCurrentExchangeRatesResult);
list($eurft) = $result->xpath("//Rate[@curr='EUR']/text()");
Ezt szeretném átülteni Perlre. Megtaláltam a SOAP::WSDL::Client kiterjesztést.
use SOAP::WSDL::Client;
my $soap = SOAP::WSDL::Client->new({proxy => 'http://www.mnb.hu/arfolyamok.asmx?WSDL'});
Hogyan tovább? Lehet, hogy RTFM.
- 3325 megtekintés
Hozzászólások
http://search.cpan.org/~swalters/SOAP-WSDL-3.003/lib/SOAP/WSDL.pm
Itt itten van minden.
my $result = $soap->call('method', %data);
Gondolom a method "GetCurrentExchangeRates()->GetCurrentExchangeRatesResult", de jo lenne elolvasni a doksijat, hogy milyen methodok vannak. Miket kerdezhetsz le. A %data-t meg kiiratod data_dumperrel. Aztan eldontod mit csinalsz vele.
- A hozzászóláshoz be kell jelentkezni
Egyszerűen az volt a baj, hogy azt se tudtam merre induljak a method, data részen.
--
A főnököm mindig megtartja amit ígér, ha pénzt ígér azt is!
- A hozzászóláshoz be kell jelentkezni
Nem vagyok perl szaki de SOAP::Lite-al nem lenne könnyebb :
use SOAP::Lite;
$SOAP::Constants::PREFIX_ENV="SOAP-ENV"; # seems to fix random 400 Bad Request from the IIS hosted .NET crap
$soap= new SOAP::Lite -> service('http://www.mnb.hu/arfolyamok.asmx?WSDL');
print $soap->GetCurrentExchangeRates();
- A hozzászóláshoz be kell jelentkezni
Köszönöm, ez alapján már el tudok indulni jól.
--
A főnököm mindig megtartja amit ígér, ha pénzt ígér azt is!
- A hozzászóláshoz be kell jelentkezni
#!/usr/bin/perl
use XML::Simple;
use SOAP::Lite;
$SOAP::Constants::PREFIX_ENV="SOAP-ENV"; # seems to fix random 400 Bad Request from the IIS hosted .NET crap
$soap = new SOAP::Lite->service('http://www.mnb.hu/arfolyamok.asmx?WSDL');
$result = XMLin($soap->GetCurrentExchangeRates(), keyattr => ['curr'] );
$data = $result->{Day}->{Rate}->{EUR}->{content};
Lehet szebben is meg lehet írni, de ez működik.
--
A főnököm mindig megtartja amit ígér, ha pénzt ígér azt is!
- A hozzászóláshoz be kell jelentkezni