Como tratar retorno de uma requisição soap

Enviada por Roger Toledo 
Roger Toledo
Como tratar retorno de uma requisição soap
21 de February de 2012 às 02:25PM
Opa...

Estou começando a trabalhar com php e webservice. Ao consumir um WebService com SOAP Extension e obtenho o xml, porém, como objeto. Como faço para manipular esse objeto e salvar em uma tabela?

object(stdClass)[2]
public 'RETORNARESULT' => string '
<Retorno>
<Produtos codigo="SKU">
<descricao>PRODUTO</descricao>
<estoque>80</estoque>
<local>B3</local>
</Produtos>
</Retorno>

Obrigado.
Marcos Regis
Re: Como tratar retorno de uma requisição soap
22 de February de 2012 às 01:26PM
tente assim

$xml = new SimpleXMLElement($obj->RETORNARESULT);

echo 'Codigo => ' = $xml->Retorno->Produtos['codigo'];
echo '<br /> Descricao => '= $xml->Retorno->Produtos->descricao;

...
Roger Toledo
Re: Como tratar retorno de uma requisição soap
22 de February de 2012 às 07:34PM
Muito obrigado!!!!!

Eu só tirei o Retorno, deixando - $xml->Produtos['codigo'];
Dessa forma ($xml->Retorno->Produtos['codigo'];) não trouxe nada, ai usei o var_dump($xml); (na linha abaixo) para ver a estrutura que resultou em:

Codigo ->
Descricao ->
object(SimpleXMLElement)[2]
public 'Produtos' =>
object(SimpleXMLElement)[4]
public '@attributes' =>
array
'codigo' => string 'SKU' (length=3)
public 'descricao' => string 'PRODUTO' (length=7)
public 'estoque' => string '80' (length=2)
public 'local' => string 'B3' (length=2)

Como o retorno não apareceu eu tirei e funcionou.

$xml = new SimpleXMLElement($obj->RETORNARESULT);

echo 'Codigo ->'. $xml->Produtos['codigo'];
echo '<br /> Descricao -> '. $xml->Produtos->descricao;

Valeu!!
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.