Ir para conteúdo

POWERED BY:

Arquivado

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

richard nicson

Problema ao exibir classe SimpleXMLElement

Recommended Posts

Boa noite estou com um problema pois estou tentando fazer um feed automático para meu portal onde cada notícia criada atualiza automáticamente pelo banco de dados,fiz uma pesquisa na internet e cheguei onde eu queria.

 

Porém ao testar não foi exibido nada tentei alterar a versão do php em minha hosting mas não deu certo também.

Alguém conhece essa classe poderia me dizer o q está errado nesse código que não exibe nada.

<?php

include "config.php";

// Instanciamos/chamamos a classe
$rss = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><rss></rss>');
$rss->addAttribute('version', '2.0');

// Cria o elemento <channel> dentro de <rss>
$canal = $rss->addChild('channel');
// Adiciona sub-elementos ao elemento <channel>
$canal->addChild('BRMaster', 'Saiba tudo o que acontece no Brasil e no Mundo');
$canal->addChild('link', 'http://www.brmaster.net/');
$canal->addChild('description', 'Saiba tudo o que acontece no Brasil e no Mundo!');

// Define a consulta MySQL
$sql = "SELECT * FROM noticias order by id desc";
$query = mysql_query($sql) OR die(mysql_error());

// Inclui um <item> para cada resultado encontrado
while ($dados = mysql_fetch_assoc($query)) {
$id = $dados['id'];
$titulo = $dados['titulo'];
$texto = $dados['subtitulo'];

// Cria um elemento <item> dentro de <channel>
$item = $canal->addChild('item');
// Adiciona sub-elementos ao elemento <item>
$item->addChild('title', $titulo);
$item->addChild('link', 'http://www.brmaster.net/noticia/'.$id);
$item->addChild('description', $texto);
}

// Define o tipo de conteúdo e o charset
header("content-type: application/rss+xml; charset=utf-8");

// Entrega o conteúdo do RSS completo:
echo $xml->asXML();
exit;
?>

Grato desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso é o que exibe na página do erro.

Warning: SimpleXMLElement::addChild(): unterminated entity reference B morreu na manhã desta terça em Luisiana, EUA. in /home/brmaste1/public_html/feed.php on line 39

Warning: SimpleXMLElement::addChild(): unterminated entity reference  Company, seguida por Twitter e LinkedIn in /home/brmaste1/public_html/feed.php on line 39

Warning: SimpleXMLElement::addChild(): unterminated entity reference         Mariano in /home/brmaste1/public_html/feed.php on line 37

Warning: SimpleXMLElement::addChild(): unterminated entity reference       furiosos’ in /home/brmaste1/public_html/feed.php on line 37

Warning: SimpleXMLElement::addChild(): unterminated entity reference        Lóide 2’ in /home/brmaste1/public_html/feed.php on line 37

Warning: SimpleXMLElement::addChild(): unterminated entity reference       b afiada. in /home/brmaste1/public_html/feed.php on line 39

Warning: SimpleXMLElement::addChild(): unterminated entity reference  Fitch divulgou vendas comparáveis e lucro bem abaixo do esperado por Wall Street nessa quinta-feira in /home/brmaste1/public_html/feed.php on line 39

Notice: Undefined variable: xml in /home/brmaste1/public_html/feed.php on line 46

Fatal error: Call to a member function asXML() on a non-object in /home/brmaste1/public_html/feed.php on line 46

Pode ser visto nesse link http://brmaster.net/feed.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

A variável $xml não existe. Use $rss.

 

Os demais erros eu desconheço, mas parece ser algo relacionado ao "&".

Veja:

https://github.com/kbsali/php-redmine-api/issues/54

http://xdom.digitalcascade.net/manual/en/simplexmlelement.addChild.php#95931

 

Teste as sugestões dados nos dois links. Veja se resolve

Compartilhar este post


Link para o post
Compartilhar em outros sites

A variável $xml não existe. Use $rss.

 

Os demais erros eu desconheço, mas parece ser algo relacionado ao "&".

Veja:

https://github.com/kbsali/php-redmine-api/issues/54

http://xdom.digitalcascade.net/manual/en/simplexmlelement.addChild.php#95931

 

Teste as sugestões dados nos dois links. Veja se resolve

 

Muito obrigado por suas dicas Beraldo,eu resolvi o problema da seguinte forma.

Alterando esse script por outro.

 

E logo abaixo posto o código funcionando para caso alguém tenha o mesmo problema que eu.

<?php
// dados do banco Mysql
$local = "localhost";
$usuario = "root";
$senha = "";
$banco = "banco";
 
$connect = mysql_connect("$local","$usuario","$senha") or die("ERRO AO CONECTAR AO MYSQL, VERIFIQUE COM O ADMINISTRADOR" . mysql_error());
mysql_select_db("$banco") or die("BASE DE DADOS INVÁLIDO");
 
$data = date("d/m/Y");
 
 
$sql = "SELECT * FROM noticias order by id desc limit 50";
 
$query = mysql_query($sql);
 
// print o cabeçalho do xml
header("Content-type: application/xml");
 
// cabeçalho do RSS
echo "<?xml version='1.0' encoding='ISO-8859-1'?>";
?>
<rss version="2.0">
    <channel>
        <title>BRMaster - Notícias</title>
        <link>http://www.brmaster.net</link>
        <description>Saiba tudo o que acontece no Brasil e no Mundo</description>
        <language>pt-br</language>
        <copyright>BRMaster Soluções Web - Todos os direitos reservados</copyright>
        <lastBuildDate><?=$data;?></lastBuildDate>
        <ttl>20</ttl>
        <?php
        while($result = mysql_fetch_array($query)) {
        ?>
            <item>
                <title><?=$result['titulo'];?></title>
				<link>http://www.seusite.com/noticia/<?=$result['id']?></link>
                <description><?=$result['subtitulo'];?></description>
                <datePosted><?=date("d-m-Y",strtotime($result['data']));?></datePosted>
            </item>
        <?php
        }
        ?>
    </channel>
</rss>

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.