Ir para conteúdo

POWERED BY:

Arquivado

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

Anderson Nunes

XML zinho basico

Recommended Posts

Estou tentando pegar o valor "url-autenticacao" do xml abaixo:

 

<?xml version="1.0" encoding="utf-8"?>
<transacao id="1" versao="1.1.0" xmlns="http://ecommercelala.lalala.com.br"/>
 <tid>1005asdsadsd12132</tid>
 <dados-pedido>
   <numero>110</numero>
   <valor>10000</valor>
   <moeda>986</moeda>
   <data-hora>2011-02-16T17:48:14.212-02:00</data-hora>
   <idioma>PT</idioma>
 </dados-pedido>
 <forma-pagamento>
   <bandeira>visa</bandeira>
   <produto>2</produto>
   <parcelas>2</parcelas>
 </forma-pagamento>
 <status>0</status>
 <url-autenticacao>https://qasecommerce.lalala.com.br/web/index.cbmp?id=9dfdfdf5773454564etcetc</url-autenticacao>
</transacao>

 

não estou conseguindo por que o nome tem um "-" no meio, dai quando uso $xml->trabsacao->url-autenticacao; o php retorna erro por causa do traço. Como faço para isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está usando o SimpleXML? Eu tentei abrir esse seu XML aqui usando o SimpleXML e dá erro.

 

$string = <<<XML
<?xml version="1.0" encoding="utf-8"?>
<transacao id="1" versao="1.1.0" xmlns="http://ecommercelala.lalala.com.br"/>
<tid>1005asdsadsd12132</tid>
<dados-pedido>
<numero>110</numero>
<valor>10000</valor>
<moeda>986</moeda>
<data-hora>2011-02-16T17:48:14.212-02:00</data-hora>
<idioma>PT</idioma>
</dados-pedido>
<forma-pagamento>
<bandeira>visa</bandeira>
<produto>2</produto>
<parcelas>2</parcelas>
</forma-pagamento>
<status>0</status>
<url-autenticacao>https://qasecommerce.lalala.com.br/web/index.cbmp?id=9dfdfdf5773454564etcetc</url-autenticacao>
</transacao>
XML;

$xml = simplexml_load_string($string);
var_dump($xml);

 

Erro:

 

 

Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 3: parser error : Extra content at the end of the document in F:\xampp\htdocs\teste.php on line 432

 

Warning: simplexml_load_string() [function.simplexml-load-string]: <tid>1005asdsadsd12132</tid> in F:\xampp\htdocs\teste.php on line 432

 

Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in F:\xampp\htdocs\teste.php on line 432

bool(false)

 

 

 

EDIT:

 

Achei o erro aqui, é nessa linha:

 

<transacao id="1" versao="1.1.0" xmlns="http://ecommercelala.lalala.com.br"/>

 

Note que tem uma barra como se fosse uma "single tag". Deveria ser apenas assim:

 

<transacao id="1" versao="1.1.0" xmlns="http://ecommercelala.lalala.com.br">

 

Para pegar o valor de "url-autenticacao" basta usar chaves e aspas, dessa forma:

 

<?php
$string = <<<XML
<?xml version="1.0" encoding="utf-8"?>
<transacao id="1" versao="1.1.0" xmlns="http://ecommercelala.lalala.com.br">
<tid>1005asdsadsd12132</tid>
<dados-pedido>
<numero>110</numero>
<valor>10000</valor>
<moeda>986</moeda>
<data-hora>2011-02-16T17:48:14.212-02:00</data-hora>
<idioma>PT</idioma>
</dados-pedido>
<forma-pagamento>
<bandeira>visa</bandeira>
<produto>2</produto>
<parcelas>2</parcelas>
</forma-pagamento>
<status>0</status>
<url-autenticacao>https://qasecommerce.lalala.com.br/web/index.cbmp?id=9dfdfdf5773454564etcetc</url-autenticacao>
</transacao>
XML;

$xml = simplexml_load_string($string);
echo $xml->{'url-autenticacao'};
?>

 

Saída:

 

 

Um abraço!

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.