Tengo el siguiente código:
Using perl Syntax Highlighting
- sub gets {
- my $xml = 'mensaje xml q envio';
- my ($url) = @_;
- my $curl = new WWW::Curl::Easy;
- $curl->setopt( CURLOPT_URL, $url );
- $curl->setopt( CURLOPT_CONNECTTIMEOUT, 30 );
- $curl->setopt( CURLOPT_RETURNTRANSFER, 1 );
- $curl->setopt( CURLOPT_POST, 1 );
- $curl->setopt( CURLOPT_POSTFIELDS, $xml );
- $curl->setopt( CURLOPT_SSL_VERIFYPEER, 1 );
- $curl->setopt( CURLOPT_SSLCERT, 'pem.pem' );
- $curl->setopt( CURLOPT_SSLKEY, 'key.key' );
- $curl->setopt( CURLOPT_SSL_VERIFYHOST, 1 );
- $curl->setopt( CURLOPT_VERBOSE, 0 );
- my $code = $curl->perform;
- }
- my $test = gets("https://webserver.webserver/");
- print $test. "\n\n\n";
- $xml2 = new XML::Simple;
- $dataxml = $xml2->XMLin($test);
- print $dataxml. "\n\n\n";
- print $dataxml->{payment_transactions}->{payment_transaction}->{filing_date} . "\n";
- print $dataxml->{payment_transactions}->{payment_transaction}->{receiver}->{contact_phone} . "\n";
- print $dataxml->{payment_transactions}->{payment_transaction}->{receiver}->{name}->{maternal_name} . "\n";
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
El problema es que me despliega este error "File does not exist: 0 at test.pl line 45." y la línea 45 es $dataxml = $xml2->XMLin(x$test);.
Al hacer la consulta e imprimirlo con la línea print $test."\n\n\n"; sí me devuelve lo que debe de devolverme el servidor web. ¿Por qué no funciona el XMLin? Ya probé tomando el xml que me devuelve y volviéndolo una variable y haciendo todo exactamente igual a partir de la línea $dataxml = $xml2->XMLin($test); y sí funciona, sí realiza los últimos print.
¿Alguien me puede ayudar con esto? No sé qué estoy haciendo mal.
Por cierto, el xml que me devuelve con el print siempre me pone un carácter "0" al final. ¿Será este el problema? Si lo fuera, ¿cómo hago para quitar ese carácter "0" del final del xml que me devuelve?
Gracias. Éxitos.