Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

regina

[Resolvido] Arquivo xml como ler e gravar na sessão

Recommended Posts

Boa tarde,

 

eu tenho o seguinte arquivo xml

SimpleXMLElement Object

(

[cServico] => Array

(

[0] => SimpleXMLElement Object

(

[Codigo] => 41106

[Valor] => 12,80

[PrazoEntrega] => 6

[ValorMaoPropria] => 0,00

[ValorAvisoRecebimento] => 2,80

[ValorValorDeclarado] => 0,00

[EntregaDomiciliar] => S

[EntregaSabado] => N

[Erro] => 0

[MsgErro] => SimpleXMLElement Object

(

)

)

[1] => SimpleXMLElement Object

(

[Codigo] => 40010

[Valor] => 29,00

[PrazoEntrega] => 2

[ValorMaoPropria] => 0,00

[ValorAvisoRecebimento] => 2,80

[ValorValorDeclarado] => 0,00

[EntregaDomiciliar] => S

[EntregaSabado] => S

[Erro] => 0

[MsgErro] => SimpleXMLElement Object

(

)

)

)

)

Neste arquivo recebo o array cServico 0 e 1 e dentro destes valores que eu preciso gravar em uma sessão

if($xml->cServico->Erro == '0') {
 $sedex = array(
"codigo" 		=> $xml->cServico->Codigo,
      	"valor" 		=> $xml->cServico->Valor,
      	"prazo_entrega" => $xml->cServico->PrazoEntrega,
      	"aviso_recebto" => $xml->cServico->ValorAvisoRecebimento,
      	"erro" 			=> $xml->cServico->Erro,
      	"msg_erro" 		=> $xml->cServico->MsgErro,
 );
 return $sedex;
} 

o valor de $sedex fica

Array

(

[codigo] => SimpleXMLElement Object

(

[0] => 41106

)

 

[valor] => SimpleXMLElement Object

(

[0] => 12,80

)

 

[prazo_entrega] => SimpleXMLElement Object

(

[0] => 6

)

 

[aviso_recebto] => SimpleXMLElement Object

(

[0] => 2,80

)

 

[erro] => SimpleXMLElement Object

(

[0] => 0

)

 

[msg_erro] => SimpleXMLElement Object

(

)

 

)

Como devo fazer para retornar 2 arrays de cServico?

 

Agradeço a atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usei o mesmo xml que você postou no outro tópico :thumbsup:

 

<?php

$DOMDocument = new DOMDocument( '1.0', 'UTF-8' );
$DOMDocument->preserveWhiteSpace = false;
$DOMDocument->load( 'test.xml' );
$result = array( );

foreach( $DOMDocument->getElementsByTagName( 'cServico' ) as $content )
{
   $nodes  = array( );

   foreach( $content->childNodes as $child )
   {    
       $nodes[ $child->nodeName ] = $child->nodeValue;
   }

   $result[ ] = $nodes;
}

var_dump( $result );

 

Saída

array
 0 => 
   array
     'Codigo' => string '41106' (length=5)
     'Valor' => string '12,80' (length=5)
     'PrazoEntrega' => string '6' (length=1)
     'ValorMaoPropria' => string '0,00' (length=4)
     'ValorAvisoRecebimento' => string '2,80' (length=4)
     'ValorValorDeclarado' => string '0,00' (length=4)
     'EntregaDomiciliar' => string 'S' (length=1)
     'EntregaSabado' => string 'N' (length=1)
     'Erro' => string '0' (length=1)
     'MsgErro' => string '' (length=0)
 1 => 
   array
     'Codigo' => string '40010' (length=5)
     'Valor' => string '29,00' (length=5)
     'PrazoEntrega' => string '2' (length=1)
     'ValorMaoPropria' => string '0,00' (length=4)
     'ValorAvisoRecebimento' => string '2,80' (length=4)
     'ValorValorDeclarado' => string '0,00' (length=4)
     'EntregaDomiciliar' => string 'S' (length=1)
     'EntregaSabado' => string 'S' (length=1)
     'Erro' => string '0' (length=1)
     'MsgErro' => string '' (length=0)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Carlos Coelho, obrigada,

 

vou tentar, mas acho que você terá que desenhar para mim... parece muito difícil é diferente não entra na minha cabeça...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá mantive a função que já estava usando, só inclui (string) antes de passar os valores como me sugeriu o luan-alves em outro tópico

 

Problema resolvido!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.