Ir para conteúdo

Arquivado

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

JotaJonathas

SimpleXMLElement Object retorna vazio

Recommended Posts

Olá Amigos, estou desenvolvendo uma loja virtal que receberá os produtos através de um XML do

fornecer.

 

A ideia é bem simples.

1 - o fornecedor disponibiliza o XML

2 - faço a leitura do XML

3 - destrincho o array dos produtos e insiro no banco de dados.

 

Não é a primeira vez que eu trabalho com PHP e XML, mas é a primeira que vez que isso me dá

problema.

 

sempre que eu faço a leitura do XML com a função "simplexml_load_file()"

tenho esse retorno:

 

"SimpleXMLElement Object ()"

-------------------------------------------------

 

<?php

/* 
1ª Forma:
*/

$xml_caminho = "http://www.supricentro.com.br/xml/RetornarListaProdutos.xml";
$xml_ret_1 = simplexml_load_file($xml_caminho, null, null,'xs', true);
echo "<pre>";
print_r($xml_ret_1->schema->element->complexType->choice->element->complexType->sequence);


/* 
2ª  Forma:
*/

$xml_ret_2 = simplexml_load_file($xml_caminho);
print_r($xml_ret_2->children("diffgr", true));


?>

 

já tentei essa função com outros XMLs e funcionou certinho.
Não sei mais o que fazer.
Se alguém poder ajudar, fico muito agradecido.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei usando DOMDocument e DOMXPath e foi de boa:

 

header('Content-Type: text/plain; charset="utf-8"');

$url = 'http://www.supricentro.com.br/xml/RetornarListaProdutos.xml';
$dom = new DOMDocument('1.0', 'utf-8');
$dom->load($url);

$xpath = new DOMXPath($dom);
$xpath->registerNamespace('xs', 'http://www.w3.org/2001/XMLSchema');

$elements = $xpath->query('//xs:element');
$produtos = $xpath->query('//Produtos');

echo $elements->length,PHP_EOL;
echo $produtos->length;

Compartilhar este post


Link para o post
Compartilhar em outros sites


<?php

 

$url = "http://www.supricentro.com.br/xml/RetornarListaProdutos.xml";

 

$xml = simplexml_load_file($url);

$namespaces = $xml->getNameSpaces(true);

$xs = $xml->children($namespaces['xs']);

 

foreach($xs->schema->element->complexType->choice->element->complexType->sequence->element as $element) {

echo $element->attributes()->name . PHP_EOL;

}

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito Obrigado,

  • Ademilson Nunes
  • hufersil
  • Raphael Barros

Vocês me ajudaram bastante.

 

Bom final de semana para vocês!
Abração!!!



Muito Obrigado,

  • Ademilson Nunes
  • hufersil
  • Raphael Barros

Vocês me ajudaram bastante.

 

Bom final de semana para vocês!
Abração!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in /srv/disk10/1955113/www/getviews.dx.am/ytsubconfig.php:32 Stack trace: #0 /srv/disk10/1955113/www/getviews.dx.am/ytsubconfig.php(32): SimpleXMLElement->__construct('') #1 {main} thrown in/srv/disk10/1955113/www/getviews.dx.am/ytsubconfig.php on line 32

 

 

ME AJUDA AI POR FAVOR JONAS COMO RESOLVO ESSE ERRO?

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.