Ir para conteúdo
Fórum Script Brasil
  • 0

Como ler arquivo xml com retorno do cálculo do frete PAC e SEDEX


reginaa

Pergunta

Bom dia,

Consegui realizar o cálculo do frete dos correios, quando calculo apenas 1 serviço consigo trazer o resultado para a página, porém preciso exibir o valor do PAC e do SEDEX em separado para o visitante poder escolher o serviço.

Consegui obter o xml dos correios

<?xml version="1.0" encoding="ISO-8859-1" ?> 
- <Servicos>
- <cServico>
  <Codigo>41106</Codigo> 
  <Valor>12,80</Valor> 
  <PrazoEntrega>6</PrazoEntrega> 
  <ValorMaoPropria>0,00</ValorMaoPropria> 
  <ValorAvisoRecebimento>2,80</ValorAvisoRecebimento> 
  <ValorValorDeclarado>0,00</ValorValorDeclarado> 
  <EntregaDomiciliar>S</EntregaDomiciliar> 
  <EntregaSabado>N</EntregaSabado> 
  <Erro>0</Erro> 
  <MsgErro /> 
  </cServico>
- <cServico>
  <Codigo>40010</Codigo> 
  <Valor>29,00</Valor> 
  <PrazoEntrega>2</PrazoEntrega> 
  <ValorMaoPropria>0,00</ValorMaoPropria> 
  <ValorAvisoRecebimento>2,80</ValorAvisoRecebimento> 
  <ValorValorDeclarado>0,00</ValorValorDeclarado> 
  <EntregaDomiciliar>S</EntregaDomiciliar> 
  <EntregaSabado>S</EntregaSabado> 
  <Erro>0</Erro> 
  <MsgErro /> 
  </cServico>
  </Servicos>
Mas não estou sabendo como manipulá-lo para obter o desejado. PAC R$ 12,80 Entrega em 6 dias - Aviso de recebimento R$ 2,80 Sedex R$ 29,00 Entrega em 2 dias - Aviso de recebimento R$ 2,80 para o valor de 1 serviço uso <b>return $xml->cServico->Valor;</b> mas neste caso teria que retornar um array minha função
$correios = "http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?nCdEmpresa=&sDsSenha=&sCepOrigem=".$cep_origem."&sCepDestino=".$cep_destino."&nVlPeso=".$peso."&nCdFormato=1&nVlComprimento=".$comprimento."&nVlAltura=".$altura."&nVlLargura=".$largura."&sCdMaoPropria=n&nVlValorDeclarado=".$valor_declarado."&sCdAvisoRecebimento=s&nCdServico=".$cod_servico."&nVlDiametro=0&StrRetorno=xml";
$xml = simplexml_load_file($correios);
if($xml->cServico->Erro == '0') {
  return $xml->cServico->Valor;
} else {
  return false;
}

$frete=calculaFrete($cod_servico,$cep_origem,$cep_destino,$peso,$altura, $largura, $comprimento, $valor_declarado);
$_SESSION['frete']      =str_replace(",",".",$frete);

Alguém pode me ajudar a retornar este array e jogar seus valores em sessão?

Desde já agradeço.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

a url é esta:

http://ws.correios.com.br/calculador/CalcP...;StrRetorno=xml

o valor vem certinho o que eu preciso é pegar os valores retornados em

<Codigo>41106</Codigo>

<Valor>12,80</Valor>

<PrazoEntrega>5</PrazoEntrega>

<ValorAvisoRecebimento>2,80</ValorAvisoRecebimento>

<Erro>0</Erro><MsgErro/>

e

<Codigo>40010</Codigo><Valor>29,00</Valor>

<PrazoEntrega>1</PrazoEntrega>

<ValorAvisoRecebimento>2,80</ValorAvisoRecebimento>

<Erro>0</Erro>

<MsgErro/>

Agradeço a atenção

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,1k
×
×
  • Criar Novo...