WebService retornando XML

Bom dia pessoal, tudo bem?

Estou tentando consumir um WebService do meu sistema, porém o mesmo retorna um XML ou CSV, no caso em questão estou retornando um XML.

Quando uso o SC_WEBSERVICE() consigo gerar a conexão sendo que ele me retorna todos os dados na tela (mesmo eu não mandando um echo na variável), mas retorna todos os dados listados um ao lado do outro, como se o browser estivesse interpretando.

Quando efetuo o teste por fora, ele me retorna o XML descrito abaixo.

Sabe como consigo, ou gerar um arquivo, ou transformar este XML em um ARRAY ou JSON para efetivar a leitura?

Será que alguém consegue ajudar com isso?

O XML monta = Cabeçalho e = Resposta dos dados.

portal cod_cliente razao_cliente nome_cliente doc_cliente tipo_cliente endereco_cliente numero_rua_cliente complement_end_cli bairro_cliente cep_cliente cidade_cliente uf_cliente pais fone_cliente email_cliente sexo data_cadastro data_nascimento cel_cliente ativo dt_update inscricao_estadual incricao_municipal identidade_cliente cartao_fidelidade cod_ibge_municipio classe_cliente matricula_conveniado tipo_cadastro empresa_cadastro 811 434113 Dani menler 01041774702 F Rua Conde de Bonfim 590 707 Tijuca 20520055 Rio de Janeiro RJ BRASIL F 2018-04-01T16:22:00 1990-08-07T00:00:00 21979317170 S 2018-04-01T16:22:00 ISENTO C 8 811 434163 Thais Gonçalves 01473171776 F Rua Vinte e Quatro de Maio 0 Méier 20725001 Rio de Janeiro RJ BRASIL F 2018-04-01T20:25:00 1970-08-06T00:00:00 21964216754 S 2018-04-01T20:25:00 ISENTO C 26 True

Ver: http://php.net/manual/pt_BR/function.simplexml-load-string.php

Vou testar aqui e te retorno, Ronyan Alves.

Abs

Oi Ronyan,

Usei a função mas ele continua listando todos os resultados na tela em linha, como se pegasse o arquivo e interpretasse.

Ele lista na tela exatamente o que está abaixo:

A primeira linha é o cabeçalho

As demais linhas são os .

Note que ele não dá nem espaço. E na verdade eu queria apenas gerar um JSON a partir do XML, para salvar os dados no banco de dados.

portalcod_clienterazao_clientenome_clientedoc_clientetipo_clienteendereco_clientenumero_rua_clientecomplement_end_clibairro_clientecep_clientecidade_clienteuf_clientepaisfone_clienteemail_clientesexodata_cadastrodata_nascimentocel_clienteativodt_updateinscricao_estadualincricao_municipalidentidade_clientecartao_fidelidadecod_ibge_municipioclasse_clientematricula_conveniadotipo_cadastroempresa_cadastro811434113Dani menler01041774702FRua Conde de Bonfim590707Tijuca20520055 Rio de JaneiroRJBRASILF2018-04-01T16:22:001990-08-07T00:00:0021979317170S2018-04-01T16:22:00ISENTOC8811434163Thais Gonçalves01473171776FRua Vinte e Quatro de Maio0Méier20725001 Rio de JaneiroRJBRASILF2018-04-01T20:25:001970-08-06T00:00:0021964216754S2018-04-01T20:25:00ISENTOC26811434089RENATA DUARTERENATA DUARTE01668685744FRua Dona Delfina166Tijuca20511270 Rio de JaneiroRJBrasilrpnduarte@gmail.comF2018-04-01T14:49:001990-06-28T00:00:00(21)99958-4199S2018-04-02T00:00:00ISENTO3304557C8811434160MARCELO CATTEMMARCELO CATTEM01924000709FPRESIDENTE DUTRA16501CENTRO26285-000NOVA IGUAÇURJBrasil(21)98606-1388F2018-04-

Consegui resolver aqui, baixando o arquivo.

Obrigado

Amigo poste aí como conseguiu e coloque no primeiro no tópico, edite o título e coloque [RESOLVIDO] para que futuras pesquisas seja um facilitador.
Obrigado

Ola Marcio

Estou passando pelo mesmo problema. Como você resolveu esse caso?

Obrigado

Olá pessoal, segue abaixo a estrutura PHP utilizada e comentada para executar a operação.

// EFETUA A LIEITURA DO WEBSERVICE COM A FUNÇÃO DO SCRIPTCASE sc_webservice
$retorno = sc_webservice(“curl”,$url,80,“POST”,$params,$configuracao);

// MONTA O NOME DO ARQUIVO XML E O CAMINHO ONDE O MESMO SERÁ ARMAZENADO
$arquivo = ‘C:\ArquivosXml\Meu_Arquivo_XML.xml’;

// GERA O ARQUIVO XML
file_put_contents($arquivo, $retorno);

// ABRE O ARQUIVO XML GERADO
$xml = simplexml_load_file($arquivo);

// INICIA A MONTAGEM DA ESTRUTURA DA TABELA PARA FAZER O INSERT DOS REGISTROS NO BANCO DE DADOS
$campos = ‘(’;
$campos_tabela = ‘(’;

// EFETUA A LEITURA DOS REGISTROS NO ARQUIXO XML E COLOCA OS ITENS NA ESTRUTURA DO INSERT LEMBRANDO QUE A LEITURA VARIA COM A ESTRUTURA DO XML
if(!empty($xml->ResponseData->C->D)){
foreach($xml->ResponseData->C->D as $registro):
$campos .= $registro.", “;
$campos_tabela .= $registro.” NVARCHAR(MAX), ";
endforeach;

// FINALIZA A MONTAGEM DA ESTRUTURA DA TABELA PARA FAZER O INSERT DOS REGISTROS NO BANCO DE DADOS
$campos .= “)”;
$campos = str_replace(", )", “)”, $campos);

$campos_tabela .= “)”;
$campos_tabela = str_replace(", )", “)”, $campos_tabela);

Olá jrjairo,

Coloquei na continuação do POST a instrução PHP comentada, para cada uma das etapas executadas.

Não sei como alterar o título do tópico.

Neste novo fórum, não precisa mais. Só que do jeito que o fórum foi configurado, igualmente você não tem como marcar como Resolvido ou Solucionado, pois os responsáveis pelo fórum ainda não ativaram esta opção aqui, pra você marcar como Resolvido:
image

Quando esta opção for liberada, basta você clicar nesse quadradinho que o tópico será dado como Resolvido automaticamente.

Fica a dica pro pessoal da Netmake.

1 Curtida

Outra forma de fazer mas é preciso testar
$retorno = sc_webservice(“curl”,$url,80,“POST”,$params,$configuracao);
$xml = simplexml_load_string($retorno);
$json = json_encode($xml);
$array = json_decode($json,TRUE);
Com isto pode trabalhar com a array.

1 Curtida

@HenriqueB, pode verificar a sugestão do @Kleyber?

1 Curtida