Fazer leitura de XML com php, está dando erro, alguém pode ajudar?
02/05/2015
0
Olá pessoal, estou fazendo uma integração do meu sistema de vendas com uma plataformas de pagamentos on line, e eles usam XML, até certo momento ocorreu tudo bem até que eu precisei usar o bendito XML pra inserir os dados no meu banco de dados, e está dando erro!
é o seguinte!
tenho o seguinte código que é o que o site fornece como exemplo para integração.
ele me gera o seguinte XML
e estou tentando fazer a leitura assim!
ai é onde mora o problema, sempre da erro.
o erro que recebo sempre é este!
mas se eu pego o XML que gera no arquivo PHP e insiro em um arquivo .XML funciona tudo normal, eu podia até criar um arquivo XML e reescrever ele com esse código.
mas eu queria evitar dar essa volta toda e ir direto ao ponto, alguém sabe e pode ajudar?
é o seguinte!
tenho o seguinte código que é o que o site fornece como exemplo para integração.
<?php $url = "https://go.gerencianet.com.br/teste/api/pagamento/xml"; $token = "token"; $xml = "<?xml version='1.0' encoding='utf-8'?> <integracao> <itens> <item> <itemValor>500</itemValor> <itemDescricao>Solicitacao de pagamento xml</itemDescricao> </item> </itens> <cliente> <nome>nome_cliente</nome> <cpf>cpf_cliente</cpf> <email>email_cliente</email> <nascimento>dt_nascimento_cliente</nascimento> <celular>cel_cliente</celular> <logradouro>logradouro_cliente</logradouro> <numero>numero_cliente</numero> <bairro>bairro_cliente</bairro> <cidade>cidade_cliente</cidade> <cep>cep_cliente</cep> <estado>estado_cliente</estado> </cliente> </integracao>"; $xml = str_replace(array("\n", "\r", "\t"), '', $xml); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_MAXREDIRS, 2); curl_setopt($ch, CURLOPT_AUTOREFERER, true); $data = array("token" => $token, "dados" => $xml); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $response = curl_exec($ch); curl_close($ch); echo "<xmp>".$response."</xmp>"; ?>
ele me gera o seguinte XML
<?xml version="1.0" encoding="utf-8"?> <integracao><status>2</status><resposta><transacao>11111</transacao><link>https://go.gerencianet.com.br/?b=11111/#/teste/pagar/11111-11111-11111</link></resposta></integracao>
e estou tentando fazer a leitura assim!
<?php // Faz o load do arquivo XML e retorna um objeto $arquivo_xml = simplexml_load_file('arquivo.php'); echo $arquivo_xml->resposta->link; ?>
ai é onde mora o problema, sempre da erro.
o erro que recebo sempre é este!
Warning: simplexml_load_file() [function.simplexml-load-file]: t.php:27: parser error : Extra content at the end of the document in /home/u330150777/public_html/l.php on line 3 Warning: simplexml_load_file() [function.simplexml-load-file]: </integracao>"; in /home/u330150777/public_html/l.php on line 3 Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /home/u330150777/public_html/l.php on line 3
mas se eu pego o XML que gera no arquivo PHP e insiro em um arquivo .XML funciona tudo normal, eu podia até criar um arquivo XML e reescrever ele com esse código.
<?php // Escreve o arquivo $fp = fopen('meus_links.xml', 'w+'); fwrite($fp, $xml); fclose($fp); ?>
mas eu queria evitar dar essa volta toda e ir direto ao ponto, alguém sabe e pode ajudar?
Cleyton Caetano
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)