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