quinta-feira, 21 de fevereiro de 2008

Erro no processamento de XML: declaração xml não está

Erro no processamento de XML: declaração xml não está no início da entidade externa

Probleminha bizonho esse!
Essa mensagem de erro estava retornando ao acessar a URL do RSS de um site. Pra piorar, lá pelas tantas observei que o XML gerado, pelo script PHP, funcionava no IE, contudo, no Mozila, não. No inicio imaginei logo que pudesse ser incompatibilidade com o Mozila, tipo alguma tag que estava usando buggava o bagulho ... Mas, que nada ....


Para resolver o problema:

Veja o código fonte do XML que o seu script de servidor (seja JSP, PHP, ASP, ou mesmo Delphi) gerou (chame a URL http://SeuXMLouRSS ... o Browser vai exibir a mensagem de erro e veja o fonte) e verifique se há espaços em branco ou outras coisas esquisitas antes da declaração:
  
"<?xml version=....".


Caso verdadeiro, se houver, o Firefox não vai conseguir interpretar o XML. A mensagem de erro é bem clara:

Posição: [tal ...]
Número da linha 1, Coluna 2:

Portanto, verifique que vai haver linhas em branco no fonte. No meu caso, o fonte estava assim:

       .
       .
//Aqui tem espaço em braco
<?xml version="1.0" encoding="ISO-8859-1" ?>




  <rss version="2.0">
    <channel>
      .
      .  


Depois de uma pesquisa rápida no Google, num Fórum um louco mencionou a questão das linhas em branco. Quando consegui fazer com que o script PHP fizesse isso:


<?xml version="1.0" encoding="ISO-8859-1" ?>
 <rss version="2.0">
    <channel>
 <title>Blablablah- Notícias</title>
       <link>http://www.bleng.com.br</link>
  .
  .


Sucesso!! O bagulho funfou!!!
Veja como ficou o script PHP .....

<?
header("Content-type: application/xml"); echo "<?xml version=\"1.0\"
  encoding=\"ISO-8859-1\" ?>\n";
include("../../Conn/ZN_Conexao.php");
$sql = "SELECT
          blah, Bleng, Landjah
        FROM
          Wandjah
        WHERE
          blah = '2'
        ORDER by bleng DESC
        LIMIT 5";
$query = mysql_query($sql);

?>
    .
    .
    .

2 comentários:

  1. O meu ta dando esse problema, mas aí no artigo não mostra qual arquivo PHP tem que arrumar. Qual é e onde fica?

    ResponderExcluir
  2. Maravilha Gmotta, acho que eh exatamente o meu problema. Reforçando a pergunta do Lucas, como eu faço pra editar essa primeira linha? Ja procurei em todos os arquivos presentes no diretorio e tambem na administração do Wordpress.

    ResponderExcluir

 
BlogBlogs.Com.Br